多次使用ResultSet不能按预期工作

时间:2017-03-20 09:00:47

标签: java jdbc

为什么我不能两次同时。第二次我会一片空白。

String sql = "select * from t_user";
Connection con = dbUtil.getCon();
Statement statement = con.createStatement();
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
    System.out.println("phoneFirst" + rs.getString("phone"));
}

while (rs.next()) {
    System.out.println("phoneSecond" + rs.getString("phone"));
}

enter image description here

1 个答案:

答案 0 :(得分:3)

这是因为,ResultSet不会那样工作。它只是前进的。一旦它到达终点,它就不会再回到第一位。您可能想要使用Scrollable Result。

Statement statement = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);

完成While循环后,使用行rs.beforeFirst();

重置为第一个
while (rs.next()) {
    System.out.println("phoneFirst" + rs.getString("phone"));
}

 rs.beforeFirst(); 

while (rs.next()) {
    System.out.println("phoneSecond" + rs.getString("phone"));
} 
相关问题