2013-07-28 54 views
0

我有一个带有“标识符”属性的表格。 我需要此属性是唯一的并且自动递增1(属性的长度必须为六位数)。六位自动递增字段

例如第一次持续的实体,标识符应当是000001,第二个000002等。

你能告诉我如何实现这个要求吗?

在此先感谢。

+2

为什么?通常需要做这样的事情表明一个灾难性的设计缺陷。当ID达到999999时会发生? –

+0

@Tony你知道答案 – morpheus05

+0

@ morpheus05。那么我可以马卡夫妇的假设,并称他们为答案。 :(:(:(:( –

回答

2

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

String.format("%06d", num) 

“0”的间隙中填充有0
“6”的结果的尺寸为6
“d”结果被格式化为十进制整数。

例如:

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

将返回:

var = "000008" 

编辑:的String.format的语法可以在这里找到:http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax

如果你想检索从你的基地的ID,只是解析字符串作为一个数字:

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

谢谢你的回答:) Guillaume我的问题的第二部分是知道插入数据库的最大数量的最有效方法是什么? – User

+0

@ user2490510:你甚至不需要知道使用数据库序列或自动增量字段数据库必须为您生成ID在从数据库获取最大值时,它可能不再是最大值,因为多个事务并行执行。 –

+0

@ user2490510如上所述,你最好使用一个序列来自动递增ID,最大ID可以使用YourTable中的Select Max(id)来检索 – yohm