流水单号产生方法

简介: 引用:http://www.54xue.com/w/42/n-31442.html 项目中有这样的需求:每天从00001开始生成5位的流水号,比如2012年9月16日,00001、00002、……99999,到2012年9月17日,又从00001开始。

引用:http://www.54xue.com/w/42/n-31442.html

项目中有这样的需求:每天从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);
    
    }

相关文章
|
Prometheus Kubernetes 监控
Kubernetes 的 NameSpace 无法删除应该怎么办?
Kubernetes 的 NameSpace 无法删除应该怎么办?
|
Java Linux 数据安全/隐私保护
华为云计算FusionCompute虚拟化平台的安装与设置
华为云计算FusionCompute虚拟化平台的安装与设置
1316 0
华为云计算FusionCompute虚拟化平台的安装与设置
|
Ubuntu Linux
Linux:查看服务器信息,CPU、内存、系统版本、内核版本等
Linux:查看服务器信息,CPU、内存、系统版本、内核版本等
5993 0
Linux:查看服务器信息,CPU、内存、系统版本、内核版本等
|
12月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
存储 监控 关系型数据库
如何升级MySQL版本?
如何升级MySQL版本?
756 2
|
敏捷开发 算法 测试技术
C/C++ 编程大师的秘籍:轻松掌握高质量代码之道
C/C++ 编程大师的秘籍:轻松掌握高质量代码之道
300 0
|
存储 关系型数据库 Serverless
Ganos三维引擎系列(二):可视域与阴影率分析
本文介绍了基于阿里云多模态时空数据库Ganos三维引擎构建可视域分析与阴影率分析的应用方法。Ganos三维引擎支持三大类存储结构:表面网格模型、体网格模型与3D实景模型,其中表面网格模型用于存储带有语义的类BIM的精细化三维模型,体网格模型用于存储地质体等非匀质“场”类三维模型,3D实景模型用于存储倾斜摄影、精白模等用于渲染的三维模型,三种存储结构都提供了原生数据类型、空间索引、分析算子、导入导出工具、可视化支撑等功能,为数字孪生类应用提供闭环的存算显能力。
|
Prometheus 监控 Cloud Native
统一观测丨如何使用 Prometheus 监控 MySQL
简介: 数据库的瓶颈往往也是整个系统的瓶颈,其重要性不言而喻,所以对于 MySQL 的监控必不可少,及时发现 MySQL 运行中的异常,可以有效提高系统的可用性和用户体验。因此,观测 MySQL 关键指标,实时关注数据库的可用性与性能,成为运维团队的重要任务。
698 6
|
缓存 算法 安全
基于知识图谱(Knowledge Graph)的学习类软件
基于知识图谱(Knowledge Graph)的学习类软件
404 0
|
存储 消息中间件 监控
释放Trace的价值-SLS OpenTelemetry新功能直击痛点
SLS在2021年4月份正式发布了对OpenTelemetry Trace 1.0版本的支持,完全兼容OpenTelemetry Trace1.0版本的所有字段,提供了Trace显示、分析、拓扑展示等功能。在功能发布后,众多客户开始接入SLS Trace并深度使用,其中对我们也提出来非常多的建议和需求。从中我们提取出了呼声最高的一些功能和优化点,加入到了SLS的Trace方案1.1版本中。
1852 1