У меня возникли проблемы с получением данных из базы данных MySQL в моем сервлете Java. Для справки мое веб-приложение построено как библиотека - вы можете проверить элементы и проверить их обратно.(JAVA/SQL) ResultSet возвращает только одну строку из MySQL, когда она должна получить больше
Когда вы впервые нажмете «проверить», ваш запрос будет отправлен администратору, давайте позвоним этому человеку библиотекарь, который должен одобрить или отклонить ваш запрос. Предположим, что я вхожу в систему, выбираю некоторые предметы и нажимаю «checkout». Вот что происходит:
- Элементы добавляются в моей «корзину»
- В главном списке элементов на базе данных, каждый элемент имеет
VARCHAR
под названиемSTATUS
, который идентифицирует ли этот элемент"In Stock"
. Для каждого элемента, который я выбрал, эта переменная изменяется на уникальный идентификатор, связанный с моей учетной записью пользователя. - Мой запрос будет добавлен в таблицу под названием
requests_list
Утверждение, общая регистрация, и так далее работают нормально. Что не так хорошо работает, это нажать «отклонить». Вот что должно произойти:
- Запрос получает удален из
requests_list
- запрашивающего «корзину» товаров получает усечен
- Элементы сами получить объявили
"In Stock"
Вот что случилось:
- Запрос удаляется с
requests_list
- запрашивающего «корзину» товаров получает усечен
- Только первый элемент в корзине получает перепроверял в
Вот код, я работаю с до сих пор:
stmt.execute("DELETE FROM requests_list WHERE UNIQUE_ID = '"
+ selected_ID + "'"); // this seems to work
stmt.execute("TRUNCATE TABLE checkout_" + selected_ID); // also seems to work
ResultSet all_gear = stmt
.executeQuery("SELECT * FROM gear_master_list");
while (all_gear.next()) {
if (all_gear.getString(5).equals(selected_ID)) {
stmt.execute("UPDATE gear_master_list SET STATUS = 'In Stock' WHERE ID_NUM = "
+ all_gear.getInt(6));
}
}
all_gear.close();
Некоторые примечания, чтобы объяснить некоторые из переменных:
selected_ID
- библиотекарь щелкает раскрывающийся для доступа к списку пользователей, которые сделали запросы. После того, как он или она выбирает один, уникальный идентификатор этого пользователя становитсяselected_ID
checkout_selected_ID
- Ваша «корзина» - это таблица в базе данных.Эта таблица названа в честь вашего уникального ID, так что если мой уникальный идентификатор был зайчиками, мой стол был быcheckout_bunnies
stmt
иConnection
рисует егоStatement
от все действительна и работыgear_master_list
является таблицей со всей шестерней ,all_gear.getInt(6)
ссылается на уникальный инвентарный номер, что каждая часть передач имеет, иall_gear.getString(5)
являетсяSTATUS
переменной я упомянул
Я пытался сделать это по-другому, так что код проходит через все элементы в корзине, обновляет статус, а затем обрезает таблицу. Это тоже не сработало - по-прежнему было сложно обновить статус, и таблица не будет усекать.
TL; DR: Мои ResultSet
только получать мне одну строку из моей таблицы (я думаю), даже если я использую while
петлю и есть больше чем одна строка. Что происходит? Есть ли лучший, более эффективный способ сделать это?
есть вы отлажена, что у вашего Resultset есть все предметы, также поделитесь вашей ошибкой. – SSH