【问题标题】:Generating unique keys using RandomStringUtils of apache commons使用 Apache commons 的 RandomStringUtils 生成唯一键
【发布时间】:2016-04-04 23:09:29
【问题描述】:

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

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

我将密钥限制为 5 个字符。我的目的是在将新记录插入数据库时​​为每条记录生成唯一键。上面的代码是否适用于相应的任务,我可以保证每次插入新记录时我都会从上面的代码中获得一个唯一的键。

【问题讨论】:

  • 随机!= 唯一。如果您想要唯一的使用 UUID

标签: java jakarta-ee apache-commons hashcode


【解决方案1】:

一个随机的字符串序列总是有重复的可能,否则就不是真正的随机。 RandomStringUtils 并不是真正随机的,但它试图尽可能接近随机,这似乎与您的目标背道而驰。如果您必须使用随机生成的密钥,那么您至少应该使用 java.util.UUID.randomUUID,因为它就是这样使用的。

你可能会觉得这个链接很有趣:Generating unique IDs

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您可以使用 RandomStringUtils 来执行此操作,但您还必须在尝试插入 id 之前对其进行测试。

      1. 生成
      2. 它已经存在了吗?

      如果是,请转到 1 如果没有插入id

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

      【讨论】:

        猜你喜欢
        • 2015-05-11
        • 1970-01-01
        • 1970-01-01
        • 2014-11-28
        • 2019-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多