2015-09-06 3 views
-2

В java, скажем, у меня есть программа, которая проверяет максимальное значение в базе данных и увеличивает ее на 1, чтобы создать мой номер квитанции.Приращение значения номера квитанции

Как я мог запустить свой первый номер как 001 и соответственно увеличить его.

Таким образом

int x = rs.get(sql statement for maximum value). 

Say x = 001

Новый номер должен быть вставлен обратно должен быть 002.

ответ

2

Прежде всего, ваш переменные й ИНТ, поэтому он не может быть 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 код. Но это нехорошее решение, потому что это может привести к некоторым проблемам, когда вы получите одно и то же значение в нескольких транзакциях.

+0

Спасибо. Использование обнаруженной последовательности iv является очень хорошим решением. Бог благословил –