Java 多次使用ResultSet未按预期工作

Java 多次使用ResultSet未按预期工作,java,jdbc,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(

为什么我两次都不能,第二次我会变空白

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"));
}

这是因为,ResultSet不会那样工作。它只是向前的。一旦到达终点,它就不会回到第一位。您可能希望使用可滚动的结果

Statement statement = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
完成While循环后,使用行
rs.beforeFirst()重置为first


因为您已经使用了结果集,这是一种一次读取的类型。
while (rs.next()) {
    System.out.println("phoneFirst" + rs.getString("phone"));
}

 rs.beforeFirst(); 

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