【MyBatis】UUID使用


簡介

  UUID 是 通用唯一識別碼(Universally Unique Identifier)的縮寫,是一種軟件建構的標准,亦為開放軟件基金會組織在分布式計算環境領域的一部分。其目的,是讓分布式系統中的所有元素,都能有唯一的辨識信息,而不需要通過中央控制端來做辨識信息的指定。如此一來,每個人都可以創建不與其它人沖突的UUID。在這樣的情況下,就不需考慮數據庫創建時的名稱重復問題。目前最廣泛應用的UUID,是微軟公司的全局唯一標識符(GUID),而其他重要的應用,則有Linux ext2/ext3文件系統、LUKS加密分區、GNOME、KDE、Mac OS X等等。另外我們也可以在e2fsprogs包中的UUID庫找到實現。

  UUID是基於當前時間、計數器(counter)和硬件標識(通常為無線網卡MAC地址)等數據計算生成的。UUID可以被任何人獨立創建,並按需發布。UUID沒有集中管理機構,因為它們是不會被復制的獨特標識符。屬性協議允許設備使用UUID識別屬性類型,從而不需要用讀/寫請求來識別它們的本地句柄

組成

  UUID是指在一台機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。通常平台會提供生成的API。按照開放軟件基金會(OSF)制定的標准計算,用到了以太網卡地址、納秒級時間、芯片ID碼和隨機數。
UUID由以下幾部分的組合:
(1)當前日期和時間,UUID的第一個部分與時間有關,如果你在生成一個UUID之后,過幾秒又生成一個UUID,則第一個部分不同,其余相同。
(2)時鍾序列。
(3)全局唯一的IEEE機器識別號,如果有網卡,從網卡MAC地址獲得,沒有網卡以其他方式獲得。
(4)在 hibernate(Java orm框架)中, 采用 IP-JVM啟動時間-當前時間右移32位-當前時間-內部計數(8-8-4-8-4)來組成UUID

使用

@Test
public void testUUID(){
    String str = UUID.randomUUID().toString();
    System.out.println(str);
}

  如需去掉字符串中的"-",replace一下即可。


免責聲明!

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



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