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;
}
}
}
分享到:
相关推荐
序号生成工具 序号删除工具 自动生成序号和自动删除序号
采用了4中方式实现唯一id生成。 其他语言可以改动。
使用sql语句,在数据库记录加入时,自动生成序号
讲解如何在Form(父子结构)中自动生成行号,并且行号可以修改,修改后的行号依然会按照最大的行号网上递增,类似采购订单Form的行号逻辑
超级方便,点一下就一个序号生成,可以设置字体高度,默认序号是带圆圈的,加载lsp百度一下就知道啦~
在查询中生成序号列,构思巧妙。请作者与我联系,以便在这附上您的大名。
针对硬件绑定 软件序列号生成 , 序列号检测, 相当的好用,都加了注释
在style中生成序号,ListBox中的元素的文本标签只需应用style即可。本资源是文章https://blog.csdn.net/u013113678/article/details/120982077的附件资源,包含完整的代码及vs2019项目。
/** * 获得序列号,同时更新持久化存储中的序列 * @param current 当前的日期 * @param start 初始化的序号 * @return 所获得新的序列号 */ protected abstract int getOrUpdateNumber(Date current, int start);
利用Excel SUBTOTAL函数在筛选条件下生成连续序号.rar,本例展示了一份商品进货明细表,利用SUBTOTAL函数可以生成连续1~N的商品序号,同时保证在数据筛选条件下也能够保持连续。
aps.net ASPxGridView 自动生成序号列
程矢Axure夜话图文教程中继器表格生成序号.pdf
根据word文档目录结构生成对应的序号,代码是一个demo,可以根据导入系统的word文档解析后根据导入文档的目录结构生成对应的序号
4. 点选序号生成器中的 "Generate" 产生一个新的序号. !!! 请勿使用在其他地方搜集的序号,以免破解失败!!! 5. 回到Delphi安装页面,点选 "Next >" 继续安装程序... 6.当安装程序完成,点选序号产生器中的"Patch...
在网上搜了半天,都没有看到满意的程序。只好参照别人写的例子,自己写了。编号是按照年份和月份+三位序号自动生成的,用的是SQL server数据库,用VS2010编写的。调试已通过。希望给同为新手的各位一个参考。
GridControl增加序号(内附源码、演示),包括序号从0开始,序号从1开始。
用 STM32 唯一序列号进行程序的加密保护算法。
取消WORD按回车键就生成自动序号.docx
Excel表格怎么自动生成序号.docx
本文实例为大家分享了C#生成唯一订单号的具体代码,供大家参考,具体内容如下 根据GUID+DateTime.Now.Ticks生产唯一订单号 /// /// 生成唯一数 /// public class UniqueData { private static object obj = ...