分享個主鍵生成策略 中小型應用

分享個主鍵生成策略 中小型應用

/** 
* getPK,得到數據庫使用的一個long型惟一主鍵 
* 16位,同一微秒內3000個不會重複 
* @return long 
*/ 
private static long[] ls = new long[3000]; 
private static int li = 0; 
public synchronized static long getPK() 
{ 
long lo = getpk(); 
for (int i = 0; i < 3000; i++) 
{ 
long lt = ls[i]; 
if (lt == lo) 
{ 
lo = getPK(); 
break; 
} 
} 
ls[li] = lo; 
li++; 
if (li == 3000) 
{ 
li = 0; 
} 
return lo; 
} 

private static long getpk() 
{ 
String a = (String.valueOf(System.currentTimeMillis())).substring(3, 13); 
String d = (String.valueOf(Math.random())).substring(2, 8); 
return Long.parseLong(a + d); 
}
相關文章
相關標籤/搜索