-2
在java中,假設我有一個程序檢查數據庫中的最大值並將其增加1以創建我的收據編號。增加收據編號的值
我怎麼能開始我的第一個數字爲001,並相應地增加它。
因此
int x = rs.get(sql statement for maximum value).
說x = 001
新號碼將被插回應該是002
在java中,假設我有一個程序檢查數據庫中的最大值並將其增加1以創建我的收據編號。增加收據編號的值
我怎麼能開始我的第一個數字爲001,並相應地增加它。
因此
int x = rs.get(sql statement for maximum value).
說x = 001
新號碼將被插回應該是002
首先,你的變量x爲int,所以它不可能是001,只是1,但你可以使用一個字符串在其他地方使用格式:
String formattedX = String.format("%03d", x);
我想,「檢查數據庫中的最大值」意味着獲得主鍵的下一個值。要做到這一點,你可以使用數據庫序列(read about it here,它是數據庫特定的,所以我不能說如何在你的情況下實現它),每次你需要它時,獲得它的下一個值。對於OracleDB的它可以用這個查詢來完成:
SELECT somesequense.nextval FROM DUAL;
或者你可以使用一個分析MAX()函數爲你的數據庫,例如用於Oracle:
SELECT MAX(receipt_number) "Maximum" FROM receipts;
然後就是增加它在你的java碼。但這不是一個好的解決方案,因爲它會導致一些問題,當你在幾次交易中獲得相同的價值時。
謝謝。使用發現的序列iv是一個非常好的解決方案。上帝保佑 –