zoukankan      html  css  js  c++  java
  • 简单流水号生成

      项目中有这样的需求:每天从00001开始生成5位的流水号,比如2012年9月16日,00001、00002、......99999,到2012年9月17日,又从00001开始。而且系统重启后依然需要保持流水性,重启前是00012,那么重启后需要从00013开始。

      选择的一个方案就是将流水号保存到数据库。

      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);
        }

      

  • 相关阅读:
    文献阅读方法 & 如何阅读英文文献
    科研方法
    水熊虫
    表达谱(DGE)测序与转录组测序的差别
    单细胞测序
    SGE:qsub/qstat/qdel/qhost 任务投递和监控
    统计分布汇总 | 生物信息学应用 | R代码 | Univariate distribution relationships
    JELLYFISH
    外泌体
    CDS & ORF & 启动子 & 终止子 & 转录因子 & 基因结构 & UTR
  • 原文地址:https://www.cnblogs.com/luxh/p/2687689.html
Copyright © 2011-2022 走看看