Member 14697968 Ответов: 1

Как сгенерировать автоматический номер банковского счета для клиентов


Привет, Ребята...
меня зовут Мубарак Омар я пытаюсь разработать систему управления банком в базе данных java и mysql с помощью сервера Xampp но я сталкиваюсь с проблемой генерации автоматического увеличения номера счета может ли какой нибудь орган помочь мне пожалуйста


Спасибо!

Что я уже пробовал:

public void autoId() {

пробовать {
Класс.forName("COM на.для MySQL.с JDBC.Водитель");
как Con = DriverManager.метод getconnection("JDBC-драйвер:сервер MySQL://localhost в/банк1", "корень", "");
Оператор s = con.createStatement();
Набор РС = С. метод executequery("выберите максимум(acc_id)со счета");
РС.далее();
РС.и getString(" максимум(acc_id)");
если (РС.и getString(" максимум(acc_id)") == нуль) {
jLabel10.setText("A0001");
} еще {
долго ИД = долго.parseLong(РС.и getString(" максимум(acc_id)").функция substring(2, РС.и getString(" максимум(acc_id)").длина()));
идентификатор++;
jLabel10.помощью setText("а" + строка.формат("%03д", ИД));
}
} catch (ClassNotFoundException | SQLException ex) {
Регистратор.getLogger(счет.класс.метод getname()).журнал(уровень.Тяжелый, нулевой, бывший);
}

}

Patrice T

А вы планируете рассказать, с какой проблемой столкнулись ?

1 Ответов

Рейтинг:
8

OriginalGriff

Не делай этого так!
Проблема заключается в том, что банки - даже "фиктивные банки", как в этом упражнении, - по своей сути являются многопользовательскими системами, а это означает, что многие пользователи могут одновременно пытаться присвоить номер счета. Использование MAX для выбора текущего самого высокого значения, а затем предположение, что добавление одного к нему приведет к созданию "следующего бесплатного номера счета", - это рецепт катастрофы, потому что два или более пользователей в конечном итоге получат один и тот же номер счета, и тогда вы действительно в беде!

Вместо этого используйте комбинацию столбца идентификаторов для обеспечения уникальности и вычисляемого столбца для преобразования этого идентификатора в определенный формат номера счета, который вы хотите использовать: ALPHA + number.

Но я бы предположил, что я никогда не видел номер счета, который содержал бы буквенные символы, и есть хороший шанс, что он не будет принят многими системами, которые почти наверняка проверят там только числовые входы. Я также настоятельно рекомендую, чтобы номер счета включал контрольную сумму для обнаружения "ошибочных" счетов, таких как случайная замена двух цифр.