UUID随机数的产生
我使用UUID随机数作为对象的主键,当我在数据库中保存对象。所以这个生成的UUID号码应该是唯一的。这样我得到了随机数。UUID随机数的产生
final String UUIDUserToken = UUID.randomUUID().toString()
这能产生独特的任意生成的数字是多少?
给我点子吧。
它可以重复(用很少的可能性),
更新:
try{
//try inserting
}catch(){
//SQL constraint fails
// regenerate new UUID
//check in DB before inserting
//insert now, if its unique, else regenerate
}
获取重复的UUID的概率非常小,只要处理错误,当你得到它(再生UUID)。不需要每次都检查数据库 – 2012-08-13 08:42:06
同意 - 只要让数据库约束在发生时就能捕获它。 – 2012-08-13 08:42:38
@AviramSegal如果你不检查数据库,你怎么知道它的重复?你是说你应该假设它不会重复和处理它,如果它有? – 2012-08-13 08:43:53
生成的ID是独一无二的高清世界各地。 顺便说一句,为什么你在java代码中生成主键?数据库知道很好地完成这项工作。只需将该字段定义为AUTO INCREMENT
。
提供的ID例如是提高JPA性能的常用技术。当您需要唯一的ID不符合为自动生成的键实施的增量模式时,它也会有所帮助 - 典型的用例是同步独立的数据源。 – ChriWeis 2012-08-13 09:00:26
请参阅:http://*.com/questions/2513573/how-good-is-javas-uuid-randomuuid – markus 2012-08-13 08:42:13