对于商城订餐等的互联网项目的订单编号,可优先选择使用数字来做订单编号主键。
因为数据库来说,索引查找性能更好。
然而,你也可以使用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; }}