UUID含義是通用惟一識別碼 (Universally Unique Identifier),這 是一個軟件建構的標準,也是被開源軟件基金會 (Open Software Foundation, OSF) 的組織在分佈式計算環境 (Distributed Computing Environment, DCE) 領域的一部份。UUID 的目的,是讓分佈式系統中的全部元素,都能有惟一的辨識資訊,而不須要透過中央控制端來作辨識資訊的指定。如此一來,每一個人均可以創建不與其它人衝突的 UUID。在這樣的狀況下,就不需考慮數據庫創建時的名稱重複問題。目前最普遍應用的 UUID,便是微軟的 Microsoft's Globally Unique Identifiers (GUIDs),而其餘重要的應用,則有 Linux ext2/ext3 檔案系統、LUKS 加密分割區、GNOME、KDE、Mac OS X 等等。java
UUID.randomUUID().toString()是javaJDK提供的一個自動生成主鍵的方法。UUID(Universally Unique Identifier)全局惟一標識符,是指在一臺機器上生成的數字,它保證對在同一時空中的全部機器都是惟一的,是由一個十六位的數字組成,表現出來的形式。由如下幾部分的組合:當前日期和時間(UUID的第一個部分與時間有關,若是你在生成一個UUID以後,過幾秒又生成一個UUID,則第一個部分不一樣,其他相同),時鐘序列,全局惟一的IEEE機器識別號(若是有網卡,從網卡得到,沒有網卡以其餘方式得到),UUID的惟一缺陷在於生成的結果串會比較長。數據庫
1 import java.util.UUID; 2 3 /** 4 * 5 * @author humf 6 */ 7 public class UploadUtils { 8 9 /** 10 * 傳入文件的名稱,返回的惟一的名稱 11 * 例如:gril.jpg 返回sdjsljfsjdl.jpg 12 * @param filename 13 * @return 14 */ 15 public static String getUUIDName(String filename){ 16 // 先查找 17 int index = filename.lastIndexOf("."); 18 // 截取 19 String lastname = filename.substring(index, filename.length()); 20 // 惟一 字符串 fsd-sfsdf-sfsd-sdfsd 21 String uuid = UUID.randomUUID().toString().replace("-", ""); 22 return uuid+lastname; 23 } 24 25 public static void main(String[] args) { 26 String filename = "girl.jpg"; 27 String uuid = getUUIDName(filename); 28 System.out.println(uuid); 29 } 30 }