문제:
예외, "java.sql.SQLException: 작업 ResultSet이 닫힌 후에는 허용되지 않습니다."라는 메시지가 MySQL 데이터베이스에 대한 연결을 닫을 때 발생하며, 이는 연결 종료 후 ResultSet 처리에 문제가 있음을 나타냅니다.
코드 발췌:
<code class="java">public static ResultSet sqlquery(String query) { ResultSet rs = null; Connection connection = null; Statement st = null; try { // Establish connection and execute query } finally { // Attempt to close connection and ResultSet objects } return rs; }</code>
설명:
JDBC는 모든 쿼리 결과를 ResultSet에 즉시 검색하지 않습니다. 대신 결과 검색을 용이하게 하는 개체를 제공합니다. 그러나 이 개체는 연결이 닫히면 유효하지 않게 됩니다.
해결 방법:
이 문제를 방지하려면 코드에서 연결을 닫기 전에 쿼리 결과를 저장할 개체를 생성해야 합니다. . 여기에는 RowMapper를 사용하여 ResultSet 행을 객체에 매핑하고 메서드의 결과로 반환되는 컬렉션을 채우는 작업이 포함됩니다.
해결된 코드:
<code class="java">public static <T> List<T> sqlquery(String query, RowMapper<T> rowMapper) { Connection connection = null; Statement st = null; ResultSet rs = null; try { // Establish connection and execute query } finally { // Handle possible exceptions gracefully } while (rs.next()) { list.add(rowMapper.mapRow(rs)); } return list; }</code>
추가 참고 사항:
위 내용은 Java에서 MySQL 연결을 닫을 때 \'java.sql.SQLException: ResultSet이 닫힌 후 작업이 허용되지 않음\'이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!