一个简单的订单生成器 ---- 20160920

1、一个简单的订单号生成器:

从代码可以看出:

long orderNo = (Long.parseLong((date))) * 10000;  

orderNo += orderNum + Long.parseLong(RandomStringUtils.randomNumeric(3));

每毫秒可以保证,10000-999个订单号不重复。

import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.lang.RandomStringUtils;

public class GenerateOrderNoUtil {
	
	private static long orderNum = 0l;  
    private static String date ;  
      
    public static void main(String[] args) throws InterruptedException {  
        for (int i = 0; i < 10000; i++) {  
        	System.out.println(getOrderNo());
        }  
    }  
  
    public static synchronized String getOrderNo() {  
        String str = new SimpleDateFormat("yyMMddHHmmssS").format(new Date());  
        if(date==null||!date.equals(str)){  
            date = str;  
            orderNum  = 0l;  
        }  
        orderNum ++;  
        long orderNo = (Long.parseLong((date))) * 10000;  
        //为了避免订单号始终以0001,0002。。。结尾加上一个三位的随机数
        orderNo += orderNum + Long.parseLong(RandomStringUtils.randomNumeric(3));
        return orderNo+"";
       
    } 

}

猜你喜欢

转载自simon-9527.iteye.com/blog/2325628