【发布时间】:2014-03-12 04:38:48
【问题描述】:
我正在学习一点关于 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();
}
}
}
【问题讨论】:
标签: java jdbc updates resultset