今天来说说自增主键,jeesite4中的主键默认是生成无序的18位数字,但是在实际业务中还是需要有序的业务主键,例如E1702040001这样的单号,所以序列还是很有必要的。
一般序列可以在建表的时候加上,但是这样太麻烦,所以我定义了一个业务表去存 表名和 序列,这样方便处理和维护,结构很简单
添加工具类提取序列
private static CommonSeqService commonSeqService = (CommonSeqService)SpringUtils.getBean(CommonSeqService.class);
/**
* 获取序列
* @param tableName
* @return
*/
public static int getNumber(String tableName) {
CommonSeq seq = commonSeqService.get(tableName, false);
if (seq == null) {
return 0;
} else {
int curNumber = seq.getNumber();
seq.setNumber(curNumber + 1);
commonSeqService.save(seq);
return curNumber;
}
}
然后就是业务表在保存的时候在service里面调用工具类就ok了
public void save(MaterialInfo materialInfo) {
if (materialInfo.getIsNewRecord()) {
int seqNumber = SeqUtils.getNumber("material_info");
String tid = "A" + DateUtils.getDate("yyMMdd") + seqNumber;
materialInfo.setId(tid);
}
super.save(materialInfo);
}
这样简单处理一下就可以生成自己想要的有序主键了。。。