Java生成订单号/交易流水号

2018-06-18 00:58:57来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

    分析:既然是订单号/交易流水号,首先是不能重复,其次需考虑到性能问题。

    设计如下:

    "HF"+时间戳+随机数+循环数

    代码如下:

1 int x = 1000;
2 for(int i=0;i<10;i++){
3     x+=1;   
4     System.out.println("HF"+System.currentTimeMillis()+RandomUtils.getNo(2)+x);
5 }

    其中:RandomUtils类

 1 package com.test.common.util;
 2 
 3 import org.apache.commons.lang.RandomStringUtils;
 4 
 5 public class RandomUtils
 6 {
 7     private static String randString = "";
 8 
 9     public synchronized static String getNo(int k)
10     {
11         if (randString.length() > 20000)
12         {
13             randString = "";
14         }
15         String rno = getNoNo(k);
16         while (randString.indexOf(rno + ",") >= 0)
17         {
18             rno = getNoNo(k);
19         }
20         randString += rno + ",";
21         return rno;
22     }
23 
24     private static String getNoNo(int k)
25     {
26         try
27         {
28             Thread.sleep(1);
29         }
30         catch (InterruptedException e)
31         {
32             e.printStackTrace();
33         }
34         return RandomStringUtils.randomNumeric(k);
35     }
36 }
RandomUtils.java

 

 

    

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:021.9 IO流 流总结

下一篇:Cookie在商品浏览记录中的使用