2010-02-04 44 views

回答

5

看到這篇文章:http://www.informit.com/articles/article.aspx?p=25862&seqNum=7(鏈接到第7頁)。

它包含一個算法,作者稱之爲「COMB」Guids;我複製了下面的代碼(SQL):

SET @aGuid = CAST(CAST(NEWID() AS BINARY(10)) 
+ CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER) 

平凡的將其轉換爲Java或您需要的語言。明顯的基本原則是使日期成爲Guid的一個組成部分。整篇文章是一個很好的閱讀,因爲他對各種方法的性能做了很好的分析。

-3

我使用它來爲我的DTO的充當了短暫的集合代理鍵的UUID(通用唯一ID)。不知道它是否是同一件事,但它可能會指向你正確的方向。

import java.util.UUID; 
... 
    private String uuid=null; 
... 
    protected String getUuid() { 
     synchronized (this) { 
      if (null ==uuid) { 
      uuid = UUID.randomUUID().toString(); 
      } 
      return uuid; 
     } 
     } 
+1

不,這將創建一個標準的隨機的Guid,我需要一個連續的GUID。 – massimogentilini 2010-02-05 15:36:15

3

對於連續的UUID,你正在尋找一個版本1的UUID。 Java UUID Generator項目似乎運作得很好,是很容易使用:

Generators.timeBasedGenerator().generate().toString() 
+1

鏈接似乎已損壞。一些四處搜索顯示,這可能是在這裏討論的項目:https://github.com/cowtowncoder/java-uuid-generator – vazor 2015-02-18 21:19:29

+0

謝謝。在第一次看後,看起來生成的uuids是連續的。也許我對網頁的戰爭分裂它不會丟失.. – frankieta 2015-09-22 22:33:07