UUID

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

    UUID是指在一臺機器上生成的數字,它保證對在同一時空中的全部機器都是惟一的。一般平臺會提供生成的API。按照開放軟件基金會(OSF)制定的標準計算,用到了以太網卡地址、納秒級時間、芯片ID碼和許多可能的數字數據庫

UUID由如下幾部分的組合:數組

(1)當前日期和時間,UUID的第一個部分與時間有關,若是你在生成一個UUID以後,過幾秒又生成一個UUID,則第一個部分不一樣,其他相同。dom

(2)時鐘序列。分佈式

(3)全局惟一的IEEE機器識別號,若是有網卡,從網卡MAC地址得到,沒有網卡以其餘方式得到。函數

UUID的惟一缺陷在於生成的結果串會比較長。關於UUID這個標準使用最廣泛的是微軟的GUID(Globals Unique Identifiers)。在ColdFusion中能夠用CreateUUID()函數很簡單地生成UUID,其格式爲:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每一個 x 是 0-9 或 a-f 範圍內的一個十六進制的數字。而標準的UUID格式爲:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),能夠從cflib 下載CreateGUID() UDF進行轉換。ui

UUID是1.5中新增的一個類,在java.util下,用它能夠產生一個號稱全球惟一的IDspa

package com.mytest;
import java.util.UUID;
public class UTest {
    public static void main(String[] args) {
        UUID uuid = UUID.randomUUID();
        System.out.println(uuid);
    }
}

JDK1.5 
若是使用的JDK1.5的話,那麼生成UUID變成了一件簡單的事,覺得JDK實現了UUID: 
java.util.UUID,直接調用便可. 
UUID uuid  =  UUID.randomUUID(); 
String s = UUID.randomUUID().toString();//用來生成數據庫的主鍵id很是不錯。。

code

//下面就是實現爲數據庫獲取一個惟一的主鍵id的代碼 
public class UUIDGenerator { 
    public UUIDGenerator() { 
    } 
    /** 
     * 得到一個UUID 
     * @return String UUID 
     */ 
    public static String getUUID(){ 
        String s = UUID.randomUUID().toString(); 
        //去掉「-」符號 
        return s.replaceAll("-", "");
    } 
    /** 
     * 得到指定數目的UUID 
     * @param number int 須要得到的UUID數量 
     * @return String[] UUID數組 
     */ 
    public static String[] getUUID(int number){ 
        if(number < 1){ 
            return null; 
        } 
        String[] ss = new String[number]; 
        for(int i=0;i<number;i++){ 
            ss[i] = getUUID(); 
        } 
        return ss; 
    } 
    public static void main(String[] args){ 
        String[] ss = getUUID(10); 
        for(int i=0;i<ss.length;i++){ 
            System.out.println(ss[i]); 
        } 
    } 
}
相關文章
相關標籤/搜索