// 初始化 static AtomicInteger mySeq; /** * 返回 【前缀】 + 【9位时间长整型的36进制数,左补0】 + "-" + 5位序列号 * * @param prefix * @return */ public static String nextID(String prefix) { if (mySeq == null) { // 首次运行时的初始化 String timeSeq = new SimpleDateFormat("HHmmss", Locale.getDefault()).format(new Date()).substring(1); mySeq = new AtomicInteger(Integer.parseInt(timeSeq)); } // id前缀大写,补满2位 if (prefix == null) { prefix = "??"; } prefix = prefix.toUpperCase() + "__"; prefix = prefix.substring(0, 2); // 9位时间长整型的36进制数,左补0 String ts = lpadZero(Long.toString(System.currentTimeMillis(), Character.MAX_RADIX), 9); String id = prefix + ts + "-" + mySeq.getAndIncrement(); return id; }
nextID 带时间戳 和序号 的主键
猜你喜欢
转载自hzhlu.iteye.com/blog/2217305
今日推荐
周排行