📄 serialnum.java.svn-base
字号:
package com.srit.gcz.util;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
/**
* 获取序号
*
* @Company 国研科技
* @author 陈鹏昊
* @date 2009-3-24
* @version 1.0
* @since 1.0
*/
public class SerialNum {
// 查询自增号
private static final String QUERY_SN = "SELECT COUNT FROM "
+ SysConstant.TABLE_SERIALNUM + " WHERE KEY = ?";
// 新增自增号
private static final String INSERT_SN = "INSERT INTO "
+ SysConstant.TABLE_SERIALNUM + "(KEY, COUNT) VALUES(?, 2)";
// 更新自增号
private static final String UPDATE_SN = "UPDATE "
+ SysConstant.TABLE_SERIALNUM + " SET COUNT = ? WHERE KEY = ?";
private JdbcTemplate jdbcTemplate;
public SerialNum(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
/**
* 获得序列
*
* @param key
* @return
*/
public int getSn(String key) {
int count = 1;
try {
synchronized (SerialNum.class) {
count = jdbcTemplate
.queryForInt(QUERY_SN, new Object[] { key });
}
} catch (Exception e) {
createSn(key);
return 1;
}
if (count == 0) {
createSn(key);
return 1;
} else {
updateSn(key, count + 1);
return count;
}
}
// 更新序列号
private boolean updateSn(String key, int num) {
int operMark = jdbcTemplate
.update(UPDATE_SN, new Object[] { num, key });
return (operMark > 0) ? true : false;
}
// 创建序列号
private boolean createSn(String key) {
int operMark = jdbcTemplate.update(INSERT_SN, new Object[] { key });
return (operMark > 0) ? true : false;
}
/**
* 静态方法获取sn
*
* @param key
* @return
*/
public static int getSerialNum(String key) {
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext-db.xml");
SerialNum sn = (SerialNum) context.getBean("serialNum");
return sn.getSn(key);
}
// 测试
public static void main(String args[]) {
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext-db.xml");
System.out.println(((SerialNum) context.getBean("serialNum"))
.getSn("book"));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -