private static int sequence = 0;
private static int length = 6;
/**
* yyyymmddhhmmss+6位自增長碼(20位)
* 2023年6月29日下午1:25:23
* @return
*/
public static synchronized string getlocaltrmseqnum()
/**
* 左填0
* 2023年6月29日下午1:24:32
* @param s
* @param length
* @return
*/
public static string addleftzero(string s, int length)
int lim = c.length - x.length;
for (int i = 0; i < lim; i++)
system.arraycopy(x, 0, c, lim, x.length);
return new string(c);
} return s.substring(0, length);
}
由於生成訂單id、商品id 或者什麼什麼id的,不想用自增,又怕重複,於是就用 年與日時分秒 + 6位自增碼 (共計20位長度)來當作id
注意:如果你的id是long型,就要注意,long的最大長度為19位,如果直接轉的話會有問題,建議改為年月日時分秒+5位隨機數
主鍵 id 生成策略
1 資料庫自動增長 auto increment 優點 簡單方便 數字id天然排序,對分頁或結果需要排序很有幫助 缺點 不同資料庫語法和實現不同,資料庫遷移的時候或多版本支援的時候需要處理 在單個資料庫或讀寫分離或一主多從的情況下,只有乙個主庫可以生成,有單點故障的風險 比較難於擴充套件 分庫分表比...
hibernate生成主鍵id的配置
1 identity 用於mysql資料庫。特點 遞增 注 對於mysql資料 庫使用遞增序列時需要在建表時對主鍵指定為auto increment屬性。2 sequence 用於oracle資料庫 序列 名 3 native 跨資料庫時使用,由底層方言產生。default.sequence為hib...
Oracle唯一主鍵ID的生成
一般常用的方法有兩者,使用sequence和使用sys guid 方法一 1.建立序列sequence create sequence create sequence seq id minvalue 1 maxvalue 99999999 start with 6106 increment by 1...