首页 > 解决方案 > 返回带有事件编号的 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);
}

标签: javamysqldatabase

解决方案


您在循环ResultSet#next()内第二次调用。while去掉它:

while (rs.next()) {
   System.out.println("inside rs ");
   System.out.println(rs.getInt("product_id"));
}

每次调用ResultSet#next()时,都会将结果集的光标前移一位。这就是为什么您似乎一次通过两条记录在结果集中移动的原因。因此,您只需要在循环控制逻辑中执行此操作。


推荐阅读