Java 六位数自动递增字段

Java 六位数自动递增字段,java,db2,Java,Db2,我有一个带有“identifier”属性的表。 我需要这个属性是唯一的,并且自动递增一(属性的长度必须是六位数) 例如,第一次持久化实体时,标识符应为000001,第二次为000002,依此类推 你能告诉我如何执行这个要求吗 提前谢谢。您必须将您的号码转换为字符串。 为此,可以使用String.format String.format("%06d", num) “0”间隙用0填充。 “6”结果的大小为6。 “d”结果的格式为十进制整数 例如: int num = 8; String va

我有一个带有“identifier”属性的表。 我需要这个属性是唯一的,并且自动递增一(属性的长度必须是六位数)

例如,第一次持久化实体时,标识符应为000001,第二次为000002,依此类推

你能告诉我如何执行这个要求吗


提前谢谢。

您必须将您的号码转换为字符串。 为此,可以使用String.format

 String.format("%06d", num)
“0”间隙用0填充。
“6”结果的大小为6。
“d”结果的格式为十进制整数

例如:

 int num = 8;
 String var = String.format("%06d", num);
将返回:

 var = "000008"
EDIT:String.format的语法可在此处找到:

如果要从基中检索ID,只需将字符串解析为数字:

String identifier = "000008"; // Returned ID from database
Number num = Integer.parseInt(identifier); // num = 8

您必须将数字转换为字符串。 为此,可以使用String.format

 String.format("%06d", num)
“0”间隙用0填充。
“6”结果的大小为6。
“d”结果的格式为十进制整数

例如:

 int num = 8;
 String var = String.format("%06d", num);
将返回:

 var = "000008"
EDIT:String.format的语法可在此处找到:

如果要从基中检索ID,只需将字符串解析为数字:

String identifier = "000008"; // Returned ID from database
Number num = Integer.parseInt(identifier); // num = 8

为什么?通常,这样做的需要表明存在灾难性的设计缺陷。当id达到999999时会发生什么?Tony你知道answer@morpheus05. 好吧,我可以做一些假设,然后给他们一个答案(:(:)为什么?通常需要这样做意味着一个灾难性的设计缺陷。当id达到999999时会发生什么?@Tony你知道answer@morpheus05.好吧,我可以做一些假设,然后给他们一个答案我问题的第二部分是,知道数据库中插入的最大值的最有效方法是什么?@user2490510:你甚至不必知道。使用数据库序列或自动递增字段。数据库必须为你生成ID。当你从数据库中获取最大值时,它可能不再是最大值,因为所有事务都是并行执行的。@user2490510如上所述,您最好使用序列自动递增ID。可以使用表格中的Select max(ID)检索max ID。谢谢JB&Guillaume,我如何使用格式为“000000”的序列或自动递增字段?请你解释一下好吗?只要用一个每日汽车公司。然后当你需要这种愚蠢的格式时,用代码@guilloum.M supplied谢谢你的回复:)我问题的第二部分是,知道数据库中插入的最大值的最有效方法是什么?@user2490510:你甚至不必知道。使用数据库序列或自动递增字段。数据库必须为你生成ID。当你从数据库中获取最大值时,它可能不再是最大值,因为所有事务都是并行执行的。@user2490510如上所述,您最好使用序列自动递增ID。可以使用表格中的Select max(ID)检索max ID。谢谢JB&Guillaume,我如何使用格式为“000000”的序列或自动递增字段?请你解释一下好吗?只要用一个每日汽车公司。然后当你需要这种愚蠢的格式时,用这个代码@guilloum.M提供