import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;/*** 生成订单号类*/
public class OrderUtil {// 使用单例模式,不允许直接创建实例private OrderUtil() {}// 创建一个空实例对象,类需要用的时候才赋值private static OrderUtil g = null;// 单例模式--懒汉模式public static synchronized OrderUtil getInstance() {if (g == null) {g = new OrderUtil();}return g;}// 全局自增数private static int count = 0;// 每毫秒秒最多生成多少订单(最好是像9999这种准备进位的值)private static final int total = 9999;// 格式化的时间字符串private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");private static final SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss");// 获取当前时间年月日时分秒毫秒字符串private static String getNowDateStr() {return sdf.format(new Date());}// 记录上一次的时间,用来判断是否需要递增全局数private static String now = null;/** 生成一个订单号 - 支付平台使用*/public synchronized String GenerateOrder() {String datastr = getNowDateStr();if (datastr.equals(now)) {count++;// 自增} else {count = 1;now = datastr;}int countInteger = String.valueOf(total).length() - String.valueOf(count).length();// 算补位String bu = "";// 补字符串for (int i = 0; i < countInteger; i++) {bu += "0";}bu += String.valueOf(count);if (count >= total) {count = 0;}return datastr + bu;}public static void main(String[] args) {Random ran = new Random();int num = ran.nextInt(999);String str = String.format("%03d", num);System.out.println(str);}}

JAVA 订单号生成类相关推荐

  1. Java 订单号生成

    时间戳+随机数+用户唯一id public static String getOrderIdByTime() {SimpleDateFormat sdf = new SimpleDateFormat( ...

  2. java唯一订单号_java web在高并发和分布式下实现订单号生成唯一的解决方案

    方案一: 如果没有并发,订单号只在一个线程内产生,那么由于程序是顺序执行的,不同订单的生成时间戳正常不同,因此用时间戳+随机数(或自增数)就可以区分各个订单.如果存在并发,且订单号是由一个进程中的多个 ...

  3. 根据时间戳生成订单号工具类

    生成订单时候,需要订单号,订单号生成工具如下: 效果: @Testpublic static void main(String[] args) {System.out.println("现在 ...

  4. 快速订单号生成(两秒左右10万条数据无重复)

    订单号生成 在开发当中我想大部分程序员都会做商城类的项目,其中订单号是一个相对比较重要的数据,在用户下单是不允许有重复订单生成的. 我给大家提供了一个生成订单的方法,希望对您有所帮助!!!!!!!!! ...

  5. 电商平台订单号生成策略

    订单是整个电子商务的核心.整个电子商务的流程也是围绕订单的状态执行的.这篇博客主要向大家介绍订单号的生成方式. 现在大型电商网站大多都有好几种下单途径.比如:通过Web网站下单,通过打电话到呼叫中心下 ...

  6. Python模拟订单号生成

    模拟订单号生成 为了产生不冲突的订单号,本次测试订单生成逻辑比较简单:当天时间拼接自增数列 from datetime import datetime def set_flow():base_code ...

  7. 使用Eclipse UML 插件 Papyrus由Java代码反向生成类图

    使用Eclipse UML 插件 Papyrus由Java代码反向生成类图 为了补充上一篇博文(Java基础(复习三) -- 类图例子)类图的例子寻找一个可以生成类图的工具,搜索了若干文章后决定使用P ...

  8. 快速分辨订单号生成工具

    为了人工可以快速分辨订单号是下单还是退款.来自哪家支付机构等 /*** 微信订单号生成* @param userId* @return*/public static String wxOrderNo( ...

  9. java订单编号工具类_[idmiss-common] Java 工具类之- 顺序订单号的生成

    1.前言 这是我写的工具类之一:根据日期生成唯一顺序订单号. 用Java 配合 Redis 实现包含日期的顺序订单号的生成, 效率可以达到 2500+/s 1000W+/h 个 . 2.基本介绍 框架 ...

  10. java并发订单号生成

    单机并发下订单的生成策略,订单号以年月日开头序 import java.time.Instant; import java.util.HashSet; import java.util.Set; im ...

最新文章

  1. 计算机无法转换输入发,电脑输入法切换不了怎么办
  2. java web里实现 mvc_MVC模式在Java Web应用程序中的实现
  3. Spring第二弹—–搭建与测试Spring的开发环境
  4. [剑指offer] 跳台阶
  5. Java jdk 安装笔记
  6. Java调用动态库(转载)
  7. Java基础day2
  8. C# 从1到Core--委托与事件
  9. linux fstab解读
  10. vsftp匿名访问目录_怎么更改vsftp匿名用户的默认登录目录/var/ftp?
  11. select 获取option中其他的属性的值
  12. Interview Experience in Singapore(Part Ⅲ)
  13. Linux学习-软件磁盘阵列
  14. 关于jmeter客户端实现中HttpClient4与Java的区别
  15. 04、docker端口映射的原理及配置方法
  16. should be described in NUMA config 和 CPU feature cmt not found
  17. stm32f103c8t6使用LORA传输数据
  18. Excel的MATCH函数及其用法
  19. APS生产计划排产与ERP生产计划差异对比
  20. 成为一名优秀的架构师需要哪些条件?

热门文章

  1. sessionStorage 、localStorage 和 cookie
  2. 京东自营售前客服考试
  3. 有趣的12张数学原理动图,令人舒心却又伤脑!你看懂几个?
  4. xposed绕过模拟器检测_刺激战场过模拟器检测 刺激战场模拟器检测怎么绕过
  5. C语言解决找零钱问题
  6. [GNN图神经网络]普通邻接矩阵和 Adjacency Matrix 与 COO稀疏矩阵(edge_index, 和edge_w)相互转化
  7. 《第五项修炼》,读后感
  8. petalinux-build 报错解决
  9. 计算机cpu风扇不转怎么办,如果计算机启动时cpu风扇不旋转,该怎么办?解决方法[详细说明]...
  10. 内存取证-volatility工具的使用 (史上更全教程,更全命令)