2013-07-28 89 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