Я немного узнаю о JDBC и о том, как взаимодействовать с базами данных. Я понимаю основы, но теперь столкнулся с проблемой с обновляемыми наборами результатов. В этом упражнении я должен проверить запас каждого пива в базе данных и добавить к нему 50.
Итак, этот небольшой фрагмент кода работает, но не всегда. я запускал его несколько раз, и примерно в 50% случаев акции действительно росли. чтобы проверить это, я написал еще один небольшой цикл while, который печатает таблицу с необходимыми данными. есть идеи, почему это не работает в 100% случаев?
в базе данных 1071 запись, и я запускал этот код сразу после получения результатов. Должен ли я ждать, прежде чем запускать его снова?
package stockbier;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class bierenstock {
public static void main(String[] args) {
try (Connection con = DriverManager.getConnection(
"jdbc:mysql://noelvaes.eu/StudentDB", "student", "student123");
PreparedStatement stmt = con.prepareStatement
("select * from Beers",
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);) {
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
// edited int stock
int stock = rs.getInt("Stock") + 50;
rs.updateInt("Stock", stock);
rs.updateRow();
}
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}