|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
package com.highcom.seqgen.dao.jdbc; import java.sql.*;import javax.sql.*; import org.apache.commons.logging.*;import org.springframework.beans.factory.*;import org.springframework.context.*;import org.springframework.jdbc.core.*;import org.springframework.jdbc.object.*;import com.highcom.seqgen.dao.*;import com.highcom.seqgen.domain.*; public class SequenceDaoJdbcImpl implements SequenceDao, InitializingBean { private DataSource dataSource; private static Log logger = LogFactory.getLog(SequenceDaoJdbcImpl.class); // SequenceQuery sequenceQuery; SequenceUpdate sequenceUpdate; SequenceInsert sequenceInsert; // protected static final String INSERT_SQL = "insert into sequence(seq_name,seq_value) values( ? , ? )"; protected static final String UPDATE_SQL = "update sequence set seq_value = ? where seq_name = ?"; protected static final String SELECT_SQL = "select seq_name,seq_value from sequence where seq_name =?"; public SequenceDaoJdbcImpl() { } public int getSequence(String seq_name) { int result; Object obj = sequenceQuery.findObject(new Object[] {seq_name}); if (obj == null) { sequenceInsert.insert(seq_name, 0); } Sequence seq = (Sequence) sequenceQuery.findObject(new Object[] {seq_name}); sequenceUpdate.update(seq.getName(), seq.getValue() + 1); result = seq.getValue() + 1; return result; } public void afterPropertiesSet() throws Exception { if (dataSource == null) { logger.error("Must set dataSource bean property on " + getClass()); throw new ApplicationContextException( "Must set dataSource bean property on " + getClass()); } // sequenceQuery = new SequenceQuery(this.dataSource); sequenceUpdate = new SequenceUpdate(this.dataSource); sequenceInsert = new SequenceInsert(this.dataSource); } public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } ///////////////////////jdbc内部类 class SequenceInsert extends SqlUpdate { public SequenceInsert(DataSource dataSource) { super(dataSource, INSERT_SQL); declareParameter(new SqlParameter(Types.VARCHAR)); declareParameter(new SqlParameter(Types.INTEGER)); compile(); } public void insert(String seqName, int segValue) { Object[] objs = new Object[] { seqName, new Integer(segValue)}; super.update(objs); } } class SequenceUpdate extends SqlUpdate { public SequenceUpdate(DataSource dataSource) { super(dataSource, UPDATE_SQL); declareParameter(new SqlParameter(Types.INTEGER)); declareParameter(new SqlParameter(Types.VARCHAR)); compile(); } public void update(String seqName, int segValue) { Object[] objs = new Object[] { new Integer(segValue), seqName}; super.update(objs); } } class SequenceQuery extends MappingSqlQuery { public SequenceQuery(DataSource dataSource) { super(dataSource, SELECT_SQL); declareParameter(new SqlParameter(Types.VARCHAR)); compile(); } protected Object mapRow(ResultSet resultSet, int _int) throws SQLException { Sequence seq = new Sequence(); seq.setName(resultSet.getString("seq_name")); seq.setValue(resultSet.getInt("seq_value")); return seq; } } } 返回类别: 教程 上一教程: 初学Java注重什么? 下一教程: Java数据库编程中查询结果的表格式输出 您可以阅读与"一个生成唯一序号的服务,虽然技术不先进,但是很好用"相关的教程: · 把一个普通应用程序变为win2000(NT)中的服务 · 一个开发人员眼中的JSP技术(上) · 一个开发人员眼中的JSP技术 · 一个用来访问http服务器的东西。功能类似于java.net中的那个。但要强。 · 一个基于JSF技术的简朴示例(部分翻译) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |