Java生成日期+xxx唯一流水号:自增策略与时间戳处理
2星 需积分: 44 144 浏览量
更新于2024-09-12
4
收藏 2KB TXT 举报
在Java开发中,一个常见的需求是生成具有日期和唯一标识的流水号,例如形如"20131210001"。这个任务通常用于给上传的文件分配一个唯一的ID,确保每条记录的标识都是唯一的,且每天的ID按照特定顺序递增。在这个场景中,开发者实现了一个名为`getMaxId`的方法来生成这样的ID。
首先,方法通过连接数据库获取最新的`MST_SCMFILE_INFORMATION`表中的`FILEID`(假设为文件ID字段)。使用`SimpleDateFormat`对当前日期进行格式化,得到一个字符串如"yyyyMMdd",然后拼接到固定的"001"形成初始的流水号,例如"20131210001"。
接着,代码检查是否已经存在一个记录。如果`FILEID`为空,那么直接返回`lastNo`作为新的流水号;如果`lastNo`的前八位数字小于当天生成的日期字符串的前八位,说明新的一天开始,可以直接返回`lastNo`。否则,比较两个数字,如果当前最大ID的后三位(即流水号部分)大于或等于1,并且小于`lastNo`的后三位,说明需要生成一个新的流水号。这里使用了`substring`方法截取并转换字符串为整数进行比较。
为了确保连续性,方法使用`StringBuffer`来构建新的流水号。它首先从`lastNo`中取出后三位(即当天的最大ID),然后检查这个数值是否需要递增。如果需要递增,会在当前日期的后三位基础上加1。这样就确保了每天的流水号按照顺序增长,而不会出现重复。
这个`getMaxId`方法的核心逻辑是基于日期和数据库中的最大ID值来生成下一个流水号,通过比较和处理日期字符串,以及与已有最大ID的后三位数字,实现了日期+三位递增编号的流水号生成规则。这在Java编程中是一种常见的序列生成策略,特别是在需要给数据库记录添加唯一标识符的场景下。
2023-04-23 上传
2023-09-15 上传
2024-03-08 上传
2023-06-09 上传
2023-05-09 上传
2023-04-28 上传
8983165xld
- 粉丝: 1
- 资源: 14
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫