⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialnum.java.svn-base

📁 用户模块和指标模块等等,还有其它的模块吧
💻 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 + -