增加收据编号的值
Increment the value of a receipt number
在 java 中,假设我有一个程序检查数据库中的最大值并将其递增 1 以创建我的收据编号。
我怎样才能将我的第一个数字从 001 开始并相应地增加它。
因此
int x = rs.get( sql statement for maximum value).
说x = 001
要插入的新号码应为 002。
首先,你的变量 x 是 int,所以它不能是 001,只能是 1,但你可以制作一个 String 以在其他地方使用它的格式:
String formattedX = String.format("%03d", x);
我想,"checks for the max value in database" 意味着获取主键的下一个值。为此,您可以使用数据库序列(read about it here,它是特定于数据库的,所以我不能说如何在您的情况下实现它)并且每次您需要它时,获取它的下一个值。对于 OracleDB,可以通过以下查询完成:
SELECT somesequense.nextval FROM DUAL;
或者您可以为您的数据库使用分析 MAX() 函数,例如 Oracle:
SELECT MAX(receipt_number) "Maximum" FROM receipts;
然后在您的 java 代码中增加它。但这不是一个好的解决方案,因为当您在多个事务中获得相同的值时,它可能会导致一些问题。
在 java 中,假设我有一个程序检查数据库中的最大值并将其递增 1 以创建我的收据编号。
我怎样才能将我的第一个数字从 001 开始并相应地增加它。
因此
int x = rs.get( sql statement for maximum value).
说x = 001
要插入的新号码应为 002。
首先,你的变量 x 是 int,所以它不能是 001,只能是 1,但你可以制作一个 String 以在其他地方使用它的格式:
String formattedX = String.format("%03d", x);
我想,"checks for the max value in database" 意味着获取主键的下一个值。为此,您可以使用数据库序列(read about it here,它是特定于数据库的,所以我不能说如何在您的情况下实现它)并且每次您需要它时,获取它的下一个值。对于 OracleDB,可以通过以下查询完成:
SELECT somesequense.nextval FROM DUAL;
或者您可以为您的数据库使用分析 MAX() 函数,例如 Oracle:
SELECT MAX(receipt_number) "Maximum" FROM receipts;
然后在您的 java 代码中增加它。但这不是一个好的解决方案,因为当您在多个事务中获得相同的值时,它可能会导致一些问题。