主键ID流水号
2016-03-24 17:51
417 查看
mysql语句
比如想生成PKPK+0000这样的流水号:PKPK0000,PKPK0001,PKPK0002
利用mysql最大值函数,从第五位开始截取。
主键生成
String num = bookService.findBookMaxBookId(criteria);
if (num == null) {
newNumber = "00";
} else {
newNumber = String.valueOf(Integer.valueOf(num) + 1);
}
for (int j = 0; j < 4; j++) {
if (newNumber.length() < 4) {
newNumber = "0" + newNumber;
}
}
String pk="PKPK" + newNumber;
for循环中的次数就是要生成几个0,在这是4个,如果生成这样的流水号PKPK000,循环次数就是3
假如最大值为13,不过这个不是我们需要的,我们需要的是字符串的0013,所以需要在前面加2个0。因此长度只要小于4,就要在前面加一个0。
比如想生成PKPK+0000这样的流水号:PKPK0000,PKPK0001,PKPK0002
利用mysql最大值函数,从第五位开始截取。
select MAX(substring(a.BOOK_ID,5)) as MAXID from oa_xz_book_1 a
@Override public String findBookMaxBookId(Criteria criteria) { StringBuffer buffer = new StringBuffer(); buffer.append("select MAX(substring(a.BOOK_ID," + criteria.getAsInteger("bookTypeIdLength") + ")) as MAXID from oa_xz_book_" + criteria.getAsString("comCode") + " a"); System.out.println("findBookTypeMaxId=" + buffer.toString()); return (String) baseDao.queryForList(buffer.toString()).get(0) .get("MAXID"); }
主键生成
String num = bookService.findBookMaxBookId(criteria);
if (num == null) {
newNumber = "00";
} else {
newNumber = String.valueOf(Integer.valueOf(num) + 1);
}
for (int j = 0; j < 4; j++) {
if (newNumber.length() < 4) {
newNumber = "0" + newNumber;
}
}
String pk="PKPK" + newNumber;
for循环中的次数就是要生成几个0,在这是4个,如果生成这样的流水号PKPK000,循环次数就是3
假如最大值为13,不过这个不是我们需要的,我们需要的是字符串的0013,所以需要在前面加2个0。因此长度只要小于4,就要在前面加一个0。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树