
SQLStatement::hasMoreResults 메서드는 SQL 쿼리 결과에 대한 다음 결과가 있는지 여부를 반환하는 메서드입니다. 이 메서드는 SQL 쿼리 결과가 여러 행이 있는 경우에만 true를 반환합니다. 그러나 실제 동작은 다음과 같습니다.
- SQL 쿼리 결과가 여러 행이 있는 경우 true를 반환합니다.
- SQL 쿼리 결과가 여러 행이 없지만, 다음 결과가 있는 경우 true를 반환합니다. 예를 들어, SELECT * FROM 테이블 WHERE 조건이 true인 경우, 테이블에 조건이 true인 행이 여러 개가 없을 수 있습니다. 이 경우, hasMoreResults 메서드는 true를 반환합니다.
- SQL 쿼리 결과가 여러 행이 없고, 다음 결과도 없는 경우 false를 반환합니다.
사용 사례 예제:
#hostingforum.kr
java
// SQL 쿼리 결과가 여러 행이 있는 경우
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM 테이블");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
System.out.println(stmt.hasMoreResults()); // true
// SQL 쿼리 결과가 여러 행이 없지만, 다음 결과가 있는 경우
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM 테이블 WHERE 조건");
if (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
System.out.println(stmt.hasMoreResults()); // true
// SQL 쿼리 결과가 여러 행이 없고, 다음 결과도 없는 경우
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM 테이블 WHERE 조건");
rs.close();
System.out.println(stmt.hasMoreResults()); // false
이 메서드는 SQL 쿼리 결과에 대한 다음 결과가 있는지 여부를 반환하므로, 반복문을 사용하여 쿼리 결과를 처리할 때 유용하게 사용할 수 있습니다.
2025-07-21 06:10