對於商城訂餐等的互聯網項目的訂單編號,可優先選擇使用數字來做訂單編號主鍵。
因為數據庫來説,索引查找性能更好。
然而,你也可以使用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;
}
}