"ResultSet 닫힌 후 작업이 허용되지 않음" 예외 이해
Java에서 SQL 문을 실행할 때 ResultSet 객체를 올바르게 관리하는 것이 중요합니다. 예외를 피하기 위해. 일반적으로 발생하는 예외 중 하나는 "java.sql.SQLException: ResultSet이 닫힌 후 작업이 허용되지 않습니다."입니다.
이 예외는 ResultSet이 닫힌 후 작업(예: ResultSet에서 데이터 가져오기)을 시도할 때 발생합니다. 제공하신 코드 조각은 이 문제를 보여줍니다.
예외의 근본 원인
코드에서 명령문 개체를 생성하고 이를 사용하여 두 가지 쿼리를 실행합니다. 사용자 이름을 가져오고 다른 하나는 "프로필" 테이블에서 ID를 검색합니다. 그런 다음 동일한 연결 객체를 사용하여 preparedStatement를 생성하고 업데이트 문을 준비하려고 시도합니다.
"프로필"의 결과를 반복하는 while 루프 내에서 "getStuff()" 메서드에 액세스할 때 문제가 발생합니다. 테이블. 이 메서드 내부:
이것은 한 번에 문 개체당 하나의 ResultSet만 열 수 있다는 요구 사항을 위반합니다. 결과적으로 "getStuff()" 메소드의 ResultSet이 기본 코드에서 생성된 ResultSet 객체(rs2)와 충돌합니다.
해결 방법
이 문제를 해결하려면 예외가 발생하면 ResultSet 개체를 적절하게 관리해야 합니다.
추가로, 기본 코드에 사용되는 명령문 개체와의 잠재적인 충돌을 피하기 위해 "getStuff()" 메서드에 대한 새 명령문 개체를 생성하는 것을 고려할 수 있습니다.
위 내용은 내 Java 코드에서 'java.sql.SQLException: ResultSet이 닫힌 후 작업이 허용되지 않음' 예외가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!