Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成唯一的客户参考号_Java - Fatal编程技术网

Java 生成唯一的客户参考号

Java 生成唯一的客户参考号,java,Java,我正在开发自己的小应用程序,它允许客户创建存储在数据库中的作业,并将UUID作为主键。但是,当通过UI显示作业时,我希望作业id比uuid短。。。类似于JOB-123456的东西 只是想知道在碰撞可能性最小化的情况下,生成这些人类可读的参考号的最佳方法是什么 听起来您想使用自己的toString方法,在这种情况下,您可以传入UUID并仅从每个UUID中提取前/后6个字符。您可以执行类似git的缩短哈希,并仅显示UUID的一部分。例如: $git log --pretty=format:'%h'

我正在开发自己的小应用程序,它允许客户创建存储在数据库中的作业,并将UUID作为主键。但是,当通过UI显示作业时,我希望作业id比uuid短。。。类似于JOB-123456的东西


只是想知道在碰撞可能性最小化的情况下,生成这些人类可读的参考号的最佳方法是什么

听起来您想使用自己的toString方法,在这种情况下,您可以传入UUID并仅从每个UUID中提取前/后6个字符。

您可以执行类似git的缩短哈希,并仅显示UUID的一部分。例如:

$git log --pretty=format:'%h'
0970e05
7122fc7
b535c42
aeefb7c
4b67b04

因此,如果您有一个像4e6bcef6-c28b-4316-af72-c143925e0c18这样的UUID,可能会显示4e6b或0c18。与显示完整的UUID相比,这种方式更容易发生冲突,但如果它是一个足够小的应用程序,则仍然不太可能发生冲突。

最好使用数据库工具:Oracle中的序列或MySQL中的autoincrement列如果您有DB,我会使用它。向最终用户显示DBMS生成的自动编号或自动增量数据类型的问题在于,您不会以顺序值结束,这会混淆最终用户。在任何中等复杂的系统中,DBMS不可避免地会在中间操作或事务中使用一个数字,然后该数字将永远不可用。