UUID随机数的产生

问题描述:

我使用UUID随机数作为对象的主键,当我在数据库中保存对象。所以这个生成的UUID号码应该是唯一的。这样我得到了随机数。UUID随机数的产生


final String UUIDUserToken = UUID.randomUUID().toString() 

这能产生独特的任意生成的数字是多少?

给我点子吧。

+0

请参阅:http://*.com/questions/2513573/how-good-is-javas-uuid-randomuuid – markus 2012-08-13 08:42:13

它可以重复(用很少的可能性),

更新:

try{ 
    //try inserting 
}catch(){ 
    //SQL constraint fails 
    // regenerate new UUID 
    //check in DB before inserting 
    //insert now, if its unique, else regenerate 
} 
+4

获取重复的UUID的概率非常小,只要处理错误,当你得到它(再生UUID)。不需要每次都检查数据库 – 2012-08-13 08:42:06

+1

同意 - 只要让数据库约束在发生时就能捕获它。 – 2012-08-13 08:42:38

+0

@AviramSegal如果你不检查数据库,你怎么知道它的重复?你是说你应该假设它不会重复和处理它,如果它有? – 2012-08-13 08:43:53

生成的ID是独一无二的高清世界各地。 顺便说一句,为什么你在java代码中生成主键?数据库知道很好地完成这项工作。只需将该字段定义为AUTO INCREMENT

+1

提供的ID例如是提高JPA性能的常​​用技术。当您需要唯一的ID不符合为自动生成的键实施的增量模式时,它也会有所帮助 - 典型的用例是同步独立的数据源。 – ChriWeis 2012-08-13 09:00:26