Я немного узнаю о JDBC и о том, как взаимодействовать с базами данных. Я получаю основы, но теперь столкнулся с проблемой с обновляемыми наборами результатов. В этом упражнении я должен проверить запас каждого пива в базе данных и добавить к нему 50.JDBC и обновляемый ResultSet
Так что этот маленький кусочек кода работает, но не все время. я запускал его несколько раз и примерно в 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();
}
}
}
благодарит за комментарий Marius, но прошло некоторое время с тех пор, как я писал этот код, и я, возможно, больше не помню. в основном я не тронул JDBC после завершения этого упражнения!Сейчас я работаю над проектом, когда мы используем исключительно спящий режим. – YoNuevo
Np. Супер, что вы сейчас работаете над проектом! Я читаю книгу «Java Database Programming Bible» на JDBC. Он имеет примеры и прост. :) – Willmore