Java生成UUID 與 MySQL數據庫如何生成uuid數據


一、Java

1.UUID 簡介

   UUID 含義是通用唯一識別碼 (Universally Unique Identifier),這是一個軟件建構的標准。也是被開源軟件基金會 (Open Software Foundation, OSF) 的組織應用在分布式計算環境 (Distributed Computing Environment, DCE) 領域的一部分。

   UUID 的目的,是讓分布式系統中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其它人沖突的 UUID。在這樣的情況下,就不需考慮數據庫建立時的名稱重復問題。

2.項目實戰

    UUID 來作為數據庫數據表主鍵是非常不錯的選擇,保證每次生成的UUID 是唯一的。

    UUID的唯一缺陷在於生成的結果串會比較長。關於UUID這個標准使用最普遍的是微軟的GUID(Globals Unique Identifiers)。

    標准的UUID格式為:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)。


a.生成 UUID

 public static void main(String[] args) {
            for(int i=0;i<10;i++){
                String uuid = UUID.randomUUID().toString().replaceAll("-", "");
                System.out.println(uuid);
            }
         
        } 

b.生成指定數目的 UUID

 public static void main(String[] args) {
          String u  = getUUID();
           System.out.println(u);
        } 
        /**
         * 獲得指定數目的UUID 
         * @param number int 需要獲得的UUID數量 
         * @return String[] UUID數組 
         */
        public static String[] getUUID(int num){
            if(num < 1){
                return null;
            }
            String[] retArray = new String[num];
            for(int i=0;i<num;i++){
                retArray[i] = getUUID();
            }
            return retArray;
        }

        /**
         * 獲得一個UUID 
         * @return String UUID 
         */
        public static String getUUID(){
            String uuid = UUID.randomUUID().toString();
            //去掉“-”符號 
            return uuid.replaceAll("-", "");
        }

二、MySQL數據庫如何批量插入不重復uuid數據

第一步:先把需要查詢的數據列出來

select UUID(), a.Code, a.Name,a.Continent from 表名1 a, 表名2 b where a.Code = b.CountryCode;
注意:UUID()不要分割,分割后,uuid相同

第二步:把數據插入到表中

insert into 表名(id,code,name,continent) (
select UUID(), a.Code, a.Name,a.Continent from 表名1 a, 表名2 b where a.Code = b.CountryCode
);
第三步:更新UUID,將“ - ”替換掉

update TEMPTABLE set id =select REPLACE(id,'-','')

三、生成UUID 

/*只能生成一條*/
SELECT REPLACE(UUID(),'-','') AS id;
/*在數據庫中找一張數據多的表執行生成多條*/
SELECT (REPLACE(UUID(), '-', '')) id FROM 表名 LIMIT (條數50);

四、sqlServer 生成UUID方法

select newId();

 


免責聲明!

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



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