/** * 流水号 * @author Luxh * 2012-9-16 */public class SerialNumber {
private String id;
/**
* 流水号
*/
private Integer serialNo;
/**
* 生成日期(格式:yyyyMMdd)
*/
private String generateDate;
//getter/setter方法
//…}
2、流水号实体对应的数据表
3、生成流水号的程序
/**
* 生成流水号
* @return
*/
public String generateSerialNumber() {
//当天的初始化流水号为1
Integer serialNo = 1;
//查询当天的下一个流水号
String hql = “SELECT max(t.serialNo+1) FROM SerialNumber t WHERE t.generateDate=?”;
String generateDate = DateUtils.formatDate(new Date(), “yyyyMMdd”);
Object obj = session.createQuery(hql)。setParameter(0, generateDate)。uniqueResult();
if(obj != null) {
serialNo = (Integer) obj;
}
//将当前序列号保存到数据库
SerialNumber sn = new SerialNumber();
sn.setSerialNo(serialNo);
sn.setGenerateDate(generateDate);
session.save(sn);
//将流水号格式化为 “00001” 5位长度返回
return String.format(“%05d”, serialNo);
}