分享個主鍵生成策略 中小型應用 /** * 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); }