简单流水号生成 当天8位 yyyymmdd+ 当天5位00001,递增。 第二天重置00001

1、流水号实体
   
    /** * 流水号 * @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);
   
    }

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值