上一个项目中,需要生成一个流水账号作为数据表主键,完成后,觉得还可以,不敢独享,遂贴出以供拍砖。

流水号格式为yyyyMMddXXXX,规定每天只能到9999,代码如下:

import java.text.DecimalFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

public class PrimaryGenerater {

private static final String SERIAL_NUMBER = "XXXX"; // 流水号格式

private static PrimaryGenerater primaryGenerater = null;

private PrimaryGenerater() {

}

/**

* 取得PrimaryGenerater的单例实现

*

* @return

*/

public static PrimaryGenerater getInstance() {

if (primaryGenerater == null) {

synchronized (PrimaryGenerater.class) {

if (primaryGenerater == null) {

primaryGenerater = new PrimaryGenerater();

}

}

}

return primaryGenerater;

}

/**

* 生成下一个编号

*/

public synchronized String generaterNextNumber(String sno) {

String id = null;

Date date = new Date();

SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");

if (sno == null) {

id = formatter.format(date) + "0001";

} else {

int count = SERIAL_NUMBER.length();

StringBuilder sb = new StringBuilder();

for (int i = 0; i < count; i++) {

sb.append("0");

}

DecimalFormat df = new DecimalFormat("0000");

id = formatter.format(date)

+ df.format(1 + Integer.parseInt(sno.substring(8, 12)));

}

return id;

}

}

java流水号_Java生成流水号相关推荐

  1. java oracle 流水号_Oracle生成流水号函数

    一.参考 1:日期范围上 smalldatetime的有效时间范围1900/1/1~2079/6/6 datetime的有效时间范围1753/1/1~9999/12/31 2:精准度上 smallda ...

  2. 帮我用Java写一个生成流水号的方法

    我可以给你提供一个使用Java来生成流水号的简单方法: 使用java.util.UUID类来生成一个唯一的字符串: 使用java.time.LocalDateTime类来获取当前的日期和时间: 将上述 ...

  3. java 姓名_Java生成随机姓名、性别和年龄的实现示例

    一.定义实体类Person,封装生成的数据 package net.dc.test; public class Person { private String name; private String ...

  4. java 草稿_JAVA生成一张草稿

    /** * * ClassName: PrimaryUtils * @Description: 生成ID工具类 * [@author](https://my.oschina.net/arthor) _ ...

  5. java生成流水号001_可变数据如何批量生成?

    原标题:可变数据如何批量生成? 常见的可变数据批量生成有两种:"流水号数据的批量生成"和"连接数据库文件的数据生成".流水号数据就是类似001-002-003- ...

  6. 根据时间戳生成编号_使用雪花算法生成流水号!

    前言"在分布式系统中常见的问题就是如何生成流水号,一般情况下会有专门的流水号系统,不过在开发过程中或者开发早期不一定会有专门流水号系统,在这里介绍下我所使用的流水号生成器--雪花算法&quo ...

  7. 用SerialNumber生成流水号

    在很多程序的应用中,有许多的地方会用到流水号,我写了个专门用来生成流水号的类 使用: SerialNumber sn=new SerialNumber(); sn.getSerialNum(table ...

  8. 使用redis生成流水号

    转载请标明出处: 使用redis生成流水号_付付讶的博客-CSDN博客 本文出自使用redis生成流水号_付付讶的博客-CSDN博客 公司需求:生成14位时间+redis流水3位+"-&qu ...

  9. 简单介绍订单号或者流水号的生成方法

    一般订单号或者流水号等可能在一些平台会用到,然后我就简单的介绍一个我自己生成订单号和流水号的一个方法吧,如果程序有问题或者你有更好的生成办法,欢迎留言,留下你的文章链接,我们一起学习和进步哈. 方法简 ...

  10. 如何使用redis生成流水号

    概述 本文讲述如何使用redis生成流水号.本文是在Springboot中实现的.知道原理之后其他框架也可以轻松实现. 原理介绍 本文主要是使用redis的incr方法进行自增补零.然后结合时间.随机 ...

最新文章

  1. php正则如何使用 1,请问正则里面的值${1}怎么使用函数处理?怎么个写法?
  2. TCPIP,Http,Socket的区别
  3. 申请域名的理由_申请网站名称和域名注册为商标的重要性增加了吗?原因?
  4. backend system available odata service detection
  5. 抽象 java 1614868764
  6. 基于WF设计业务流程平台_权限在流程模板外部映射
  7. 小程序模板-评分星星
  8. mysql存储登录密码_用户身份验证:存储用户ID和密码在一个MySQL数据库
  9. python slicer_报表筛选:Excel Slicer与SQL Server Reporting Services(SSRS)参数
  10. 华为p10点击六下android,要被口水喷到死机的华为P10 你用的怎么样
  11. 哈尔滨工业大学计算机科学与技术学院许博文,王轩-哈尔滨工业大学(深圳)计算机科学与技术学院...
  12. 阮一峰mysql_阮一峰:理解矩阵乘法
  13. PolyLaneNet:基于深度多项式回归的车道估计(PolyLaneNet: Lane Estimation via Deep Polynomial Regression)
  14. Mybatis 01
  15. 【考研数学】数一-数学概念anki卡片合集-547张-23000字-22电子科大考研上岸整理
  16. 天原笔记(5) 天气形势及天气要素的预报
  17. 递归序列化错误:Recursive Serialization is not supported. You can‘t dereference a PPtr while loading.
  18. 【SSH框架/国际物流商综平台】-01-分三期(仓储管理,货运全流程管理,决策分析)- 项目背景 界面原型 用例图 企业组织结构 功能模块图 系统框架 项目表单收集
  19. 创新与服务紧贴“本土化”,Galaxy S9|S9+不愧为三星诚意之作
  20. 游戏数据分析常用指标汇总

热门文章

  1. 江苏省计算机二级c语言备考,江苏省计算机二级C语言考试备考指南
  2. 连续41次通过VB100认证,腾讯安全技术实力再获国际权威认可
  3. 【自用】网页设计与制作教程 笔记
  4. 利用公共手机获取短信验证码
  5. 【网络协议】IPV4协议介绍
  6. php+未找到驱动程序,显示未找到驱动程序,怎么办?
  7. 飞信2009_我的移动互联网十年经历 (一):飞信时代
  8. html自动写对联,css实现的对联广告代码_CSS/HTML
  9. 大型医院his系统源码 医院信息管理系统源码 C/S架构
  10. MTK 手机支持3D