使用apache commons的RandomStringUtils生成唯一键

时间:2013-11-19 06:07:53

标签: java java-ee apache-commons hashcode

请使用apache commons的 RandomStringUtils 找到以下用于生成随机字符串的代码。

String key = RandomStringUtils.random(5, String.valueOf(System.currentTimeMillis()));

我将密钥限制为5个字符。我的目的是在我向DB插入新记录时为每条记录生成唯一键。以上代码是否适合相应的任务,我可以放心,每次插入新记录时,我都会从上面的代码中获得一个唯一的密钥。

3 个答案:

答案 0 :(得分:6)

随机的字符串序列总是有可能重复,否则它不是真正随机的。 RandomStringUtils并不是随机的,但它试图尽可能接近随机,这似乎与你的目标相反。如果你必须使用随机生成的密钥,那么你至少应该使用java.util.UUID.randomUUID,因为这是以这种方式使用的。

您可能会发现此链接很有趣:Generating unique IDs

答案 1 :(得分:2)

不,随机并不意味着独特。您可以尝试使用UUID生成唯一键。

答案 2 :(得分:0)

您可以使用RandomStringUtils执行此操作,但您还必须在尝试插入之前测试该ID。

  1. 生成
  2. 它已经存在吗?
  3. 如果是,转到1 如果没有插入ID

    UUID很长,可能不是你想要的。