2017-03-20 18 views
-2

爲什麼我不能兩次,第二次我會變空白。多次使用ResultSet無法按預期工作

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

。 –

回答

3

這是因爲,結果集可能不是這樣的。它只是向前。一旦達到最後,它將不會回到第一位。您可能想要使用可滾動結果。

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

而且一旦你使用while循環做,因爲你已經消耗的結果集,這是一次類型的東西讀重置爲首先使用線rs.beforeFirst();

​​