gpt4 book ai didi

java - Java Web 应用程序中的唯一序列号

转载 作者:行者123 更新时间:2023-12-03 22:59:36 24 4
gpt4 key购买 nike

我一直想知道生成唯一 ID 的正确做法是什么?事情是在我的网络应用程序中,我将有一个插件系统,当用户注册一个插件时,我想为它生成一个唯一的序列号。我一直在考虑将所有数字存储在数据库或服务器上的文件中,生成一个随机数并检查它是否已经存在于数据库/文件中,但这似乎不太好。还有其他方法吗?使用 UUID 会是首选方式吗?

最佳答案

如果 ID 是面向用户的(看起来确实如此),那么您希望它们很难被猜到。使用内置 UUID类,它为您生成随机 ID,并可以为您很好地格式化它们。摘录:

UUID idOne = UUID.randomUUID();
UUID idTwo = UUID.randomUUID();
log("UUID One: " + idOne);
log("UUID Two: " + idTwo);

示例输出:

UUID One: 067e6162-3b6f-4ae2-a171-2470b63dff00 
UUID Two: 54947df8-0e9e-4471-a2f9-9af509fb5889

提供的链接中还有其他解决方案。我认为它很好地比较了这些方法,因此请选择最适合您需要的方法。

另一个有趣的方法是 MongoDB使用,但这可能对您的需求来说有点矫枉过正:

A BSON ObjectID is a 12-byte value consisting of a 4-byte timestamp (seconds since epoch), a 3-byte machine id, a 2-byte process id, and a 3-byte counter. Note that the timestamp and counter fields must be stored big endian unlike the rest of BSON

如果它们不是面向用户的,那么您可以将其留给数据库来执行自动递增的 id:1、2、3 等。

关于java - Java Web 应用程序中的唯一序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4519288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com