java - 返回带有事件编号的 ID SELECT * 查询
问题描述
这是我的数据库读取代码。但这仅显示具有偶数 ID 号的项目(例如:2,4,6...)。我试图用奇数调用一个项目,但它返回一个错误;
里面 rs false
错误 java.sql.SQLException:结果集结束后
这怎么可能发生?
try {
dbConnect dbConnect = new dbConnect();
Connection currentCon = dbConnect.Connect();
String sql = "SELECT * FROM vehicle";
PreparedStatement ps = currentCon.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println("inside rs " + rs.next());
ystem.out.println(rs.getInt("product_id"));
rs.getInt("product_id");
}
} catch (SQLException e) {
System.out.println("Error " + e);
}
解决方案
您在循环ResultSet#next()
内第二次调用。while
去掉它:
while (rs.next()) {
System.out.println("inside rs ");
System.out.println(rs.getInt("product_id"));
}
每次调用ResultSet#next()
时,都会将结果集的光标前移一位。这就是为什么您似乎一次通过两条记录在结果集中移动的原因。因此,您只需要在循环控制逻辑中执行此操作。
推荐阅读
- java - java - 如何确定在Java中的JButton ActionPerformed上是否按下了左/右或中键?
- c# - 为什么当我单击按钮时我的数据没有进入我的 SQL 数据库?
- kdb - KDB中的零感知协方差矩阵
- python - 从Python中的字符串中提取连续的数字字符
- redux - 如何在 redux 中捕获无效的操作类型
- jenkins - 在 jenkins 中调用 Ansible 角色
- r - 如何与R中的下一行进行计算和比较
- python - 定制类意识形态/设计
- linux - 在linux上打开root拥有的端口?
- python - 如何从 Python 中的 SQL 数据库中编号?