自動生成編號,id,序號,采用不同策略生成


  各種id生成策略

  

1:隨機編號

 1 public static String genImageName() {  2 //取當前時間的長整形值包含毫秒  3 long millis = System.currentTimeMillis();  4 //加上三位隨機數  5 Random random = new Random();  6 int end3 = random.nextInt(999);//該方法的作用是生成一個隨機的int值,該值介於[0,n]的區間,也就是0到n之間的隨機int值,包含0而不包含n。  7 //如果不足三位前面補0 String.format("%03d", end3); 3代表要獲得的總長度,0代表傳入的參數不夠的時候會用0作為填充,d會被傳入的參數替代  8 String str = millis + String.format("%03d", end3);  9 return str; 10 } 

  也可以根據需要在str的前面拼接上前綴:

   

 

 

2:流水編號

 1  public static String getstr(){
 2          String Orderno = null;
 3          String maxOrderno = "NO201601270001"; // 從數據庫查詢出的最大編號
 4          SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); // 時間字符串產生方式
 5          String uid_pfix = "NO" + format.format(new Date()); // 組合流水號前一部分,NO+時間字符串,如:NO20160126
 6          if (maxOrderno != null && maxOrderno.contains(uid_pfix)) {
 7              String uid_end = maxOrderno.substring(10, 14); // 截取字符串最后四位,結果:0001
 8              System.out.println("uid_end=" + uid_end);
 9              int endNum = Integer.parseInt(uid_end); // 把String類型的0001轉化為int類型的1
10              System.out.println("endNum=" + endNum);
11              int tmpNum = 10000 + endNum + 1; // 結果10002
12              System.out.println("tmpNum=" + tmpNum);
13              Orderno = uid_pfix +subStr("" + tmpNum, 1);// 把10002首位的1去掉,再拼成NO201601260002字符串
14          } else {
15              Orderno = uid_pfix + "0001";
16          }
17         return Orderno;
18     }
19     
20     public static String subStr(String str, int start) {
21         if (str == null || str.equals("") || str.length() == 0)
22             return "";
23         if (start < str.length()) {
24             return str.substring(start);
25         } else {
26             return "";
27         }
28     }

 

 

3:uuid獲取

 1 /*UUID.randomUUID().toString()是javaJDK提供的一個自動生成主鍵的方法。
 2      * UUID(Universally Unique Identifier)全局唯一標識符,是指在一台機器上生成的數字,
 3      * 它保證對在同一時空中的所有機器都是唯一的,是由一個十六位的數字組成,表現出來的形式。
 4      * 由以下幾部分的組合:當前日期和時間(UUID的第一個部分與時間有關,如果你在生成一個UUID之后,
 5      * 過幾秒又生成一個UUID,則第一個部分不同,其余相同),時鍾序列,全局唯一的IEEE機器識別號
 6      * (如果有網卡,從網卡獲得,沒有網卡以其他方式獲得),UUID的唯一缺陷在於生成的結果串會比較長。
 7      * */
 8     public static String getUUID() {
 9         return UUID.randomUUID().toString().replace("-","");
10       }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM