MySQL Result Set이 닫힌 후에는 작업이 허용되지 않습니다.
JDBC를 사용하여 데이터베이스와 상호 작용할 때 ResultSet 객체를 주의해서 처리하는 것이 중요합니다. "ResultSet이 닫힌 후에는 작업이 허용되지 않습니다."와 같은 예외를 피하세요. 이 오류는 이미 닫힌 ResultSet에서 작업을 수행하려고 할 때 발생합니다.
예외 이해
예외는 ResultSet이 닫힌 후 next() 메서드를 사용합니다. 이는 ResultSet을 닫으면 내부 커서를 포함한 해당 리소스가 해제되어 추가 작업에 사용할 수 없게 되기 때문에 발생합니다.
닫힌 결과 세트의 원인
제공된 코드의 해결 방법
제공된 코드의 오류는 기부 테이블을 순환하는 동안 MySQLDonation 클래스입니다. SELECT 쿼리에서 얻은 ResultSet은 후속 DELETE 쿼리에 대해 문이 다시 실행될 때 닫힙니다.
이 문제를 해결하려면 쿼리 실행 단계와 결과 처리 단계를 분리하세요.
// In MySQLDatabase class private void handleDonation(Client client, int creditamount) { try (Statement statement = getConnection().createStatement()) { // Execute DELETE query with new Statement statement.executeUpdate(String.format("DELETE ...")); } }
각 쿼리에 대해 새 명령문을 생성하면 쿼리가 완료될 때까지 ResultSet이 열린 상태로 유지됩니다. 완료되었습니다.
추가 참고 사항
위 내용은 JDBC에서 \'ResultSet이 닫힌 후 작업이 허용되지 않습니다\'가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!