java生成唯一订单号

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34357835/article/details/78731961

1.用UUID生成十六位数唯一订单号

    public static String getOrderIdByUUId() {
        int machineId = 1;//最大支持1-9个集群机器部署
        int hashCodeV = UUID.randomUUID().toString().hashCode();
        if(hashCodeV < 0) {//有可能是负数
            hashCodeV = - hashCodeV;
        }
//         0 代表前面补充0     
//         4 代表长度为4     
//         d 代表参数为正数型
        return  machineId+ String.format("%015d", hashCodeV);
    }

2.也可以时间+随机数

    public static String getOrderIdByTime() {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
        String newDate=sdf.format(new Date());
        String result="";
        Random random=new Random();
        for(int i=0;i<3;i++){
            result+=random.nextInt(10);
        }
        return newDate+result;
    }

高并发性下,确保订单的唯一性,可以把用户id加进去

猜你喜欢

转载自blog.csdn.net/qq_34357835/article/details/78731961