程序实现字符串主键自增,例如:“SN000001”,希望下一条数据是“SN000002”,所以需要字符串主键自增,所以需要传入上一次的主键的字符串,通过调用工具类的方法可以获取下一条记录。
package com.commsoft.ypass.csmp.util.sys;
/**
* 字符串主键自增,条件当传进来的Str是空时,自动创建初始化主键
* 后面的依次自增
* @author lizhenbin
*
*/
public class PrimaryKey {
// 数字串最小值
private static final char MIN_DATA = '0';
// 数字串最大值
private static final char MAX_DATA = '9';
// 数字串默认从1开始
private static final char START_DATA = '1';
// 默认长度
private static final int DEFAULT_SIZE = 8;
// KeySize的最大数
// Long的最大长度是19位,防止溢出
private static final int MAX_KEYSIZE_VALUE = 18;
// 默认字符串Head
private static final String DEFAULT_HEAD = "KEY";
// 主键字符串头部
private String keyHead;
// 字符串数字位数,不足补0
private Integer keySize = 8;
// 是否允许数字最大之后自增,默认false
private boolean keyInc = false;
// 程序执行开始系统时间
private Long startExecute = 0L;
// 程序执行结束系统时间
private Long finishExecute = 0L;
/**
* 初始化主键字符串格式,默认达到KeySize后不可自增
* @param keyHead 字符串开头部分
* @param keySize 字符串数组长度
*/
public PrimaryKey(String keyHead, Integer keySize) {
super();
/**
* 设置不可自增
*/
if(this.checkSize(keySize))
this.keySiz