对于商城订餐等的互联网项目的订单编号,可优先选择使用数字来做订单编号主键。
因为数据库来说,索引查找性能更好。
然而,你也可以使用UUID来进行生成,对于数量量不大,并发小的小项目都可以适用。

下面是生成的方法,使用简单规则 时间+随机数

import java.util.Random;

/**
 * 生成订单唯一主键,纯数字
 */
public class KeyUtil {
    /**
     * 生成主键id
     * 时间+随机数
     * @return
     */
    public static synchronized String generateUniqueKey(){
        Random random = new Random();
        // 随机数的量 自由定制,这是9位随机数
        Integer r = random.nextInt(900000000) + 100000000;

        // 返回  13位时间
        Long timeMillis = System.currentTimeMillis();

        // 返回  17位时间
        DateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String timeStr = sdf.format(new Date());

        // 13位毫秒+9位随机数
        ///return  timeMillis + String.valueOf(r);
        // 17位时间+9位随机数
        return  timeStr + r;
    }
}

Guoye
318 声望9 粉丝