2017-03-20 1 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

이 ResultSet의 그런 식으로 작동하지 않습니다 때문입니다. 그것은 앞으로 만입니다. 끝까지 도달하면 처음으로 돌아 가지 않습니다. 스크롤 가능한 결과를 사용하고자 할 수 있습니다.

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")); 
} 
관련 문제