java后台编码自动生成
“字母”+“日期”+"编号"形式
后台方法
String code = "";
SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");
String data = f.format(new Date());
String subCode = "JY"+data;
String codeNum = "";
// 查询code前几位是subCode的编码集合
List<MaTestBean> codes = service.findAllCode(subCode);
// 若不存在,则数据库无subCode开头的编码
if( codes.size() == 0 ) {
// 存入编码为 subCode+"001"
code = subCode+"001";
} else {
// 存在,则遍历取后三位在比较大小,在max后+1,生成新code
Integer max = 0;
Integer maxNum = 0;
for(MaTestBean bean : codes) {
String item = bean.getCode();
String num = item.substring(10);
Integer number = Integer.parseInt(num);
if( max < number) {
max = number;
}
}
maxNum = max+1;
String codeStr = String.valueOf(maxNum);
// 判断maxNum位数
if(maxNum <= 9) {
codeNum = "00"+ codeStr;
} else if(9 < maxNum && maxNum <= 99) {
codeNum = "0"+ codeStr;
} else {
codeNum = codeStr;
}
// 就是最后生成的编码
code = subCode+codeNum;
}
查询数据库是否有重复编码的sql语句
SELECT
你要查的编码字段
FROM
你要查的编码所在表
WHERE
你要查的编码字段 LIKE CONCAT(#{后台传来的查询参数},"%")