ResultSet이 닫힌 후 Java 오류 작업이 허용되지 않음
-
Java 오류
java.sql.SQLException: ResultSet이 닫힌 후 작업이 허용되지 않음
-
Java 오류 수정
java.sql.SQLException: ResultSet이 닫힌 후 작업이 허용되지 않음
이 튜토리얼은 Java에서 java.sql.SQLException: Operation not allowed after ResultSet closed
오류를 보여줍니다.
Java 오류 java.sql.SQLException: ResultSet이 닫힌 후 작업이 허용되지 않음
결과 집합이 닫힌 후 허용되지 않는 작업
오류는 닫힌 결과 집합에 액세스하려고 할 때 발생하는 SQL 예외입니다. Java Doc에서 언급했듯이 명령문 개체가 닫힐 때마다 Resultset
개체가 있으면 닫힙니다.
오류의 문제점은 Resultset
인스턴스가 기본 명령문도 저장한다는 것입니다. 따라서 기본 문이 닫히면 Resultset
도 닫히므로 오류가 발생합니다.
다음은 동일한 오류를 발생시키는 코드 스니펫입니다.
암호:
ResultSet Result_Set; // class variable
Statement Demo_Statement = null;
try {
Demo_Statement = DB_Connection.createStatement();
Result_Set = Demo_Statement.getGeneratedKeys();
} catch (Exception e) {
throw e;
} finally {
try {
if (Demo_Statement != null)
Demo_Statement.close();
} catch (SQLException e) {
throw e;
}
}
System.out.println(Result_Set.next());
데이터베이스 연결이 있는 위의 코드는 다음 오류를 발생시킵니다.
java.sql.SQLException: Operation not allowed after ResultSet closed
Java 오류 수정 java.sql.SQLException: ResultSet이 닫힌 후 작업이 허용되지 않음
코드의 문제는 Resultset
을 완료하기 전에 명령문 인스턴스를 닫을 수 없다는 것입니다. Resultset
작업을 마치면 Resultset
과 문 인스턴스를 모두 닫을 수 있습니다.
보시다시피 Result_Set.next()
에서 부울을 인쇄하려고 하지만 명령문 인스턴스를 닫은 후 Resultset
을 사용하고 있으며 이는 Resultset
도 닫습니다.
위의 코드에서 수정 사항은 이 위치에서 명령문을 닫지 않거나 명령문 인스턴스를 닫은 후 Resultset
을 사용하지 않는 것입니다. 애플리케이션에 따라 Demo_Statement.close()
또는 System.out.println(Result_Set.next());
를 제거할 수 있습니다. 성명.
암호:
ResultSet Result_Set; // class variable
Statement Demo_Statement = null;
try {
Demo_Statement = DB_Connection.createStatement();
Result_Set = Demo_Statement.getGeneratedKeys();
} catch (Exception e) {
throw e;
} finally {
try {
if (Demo_Statement != null)
Demo_Statement.close();
} catch (SQLException e) {
throw e;
}
}
명령문 인스턴스가 닫힌 후 Resultset
사용을 시도하는 부분을 방금 제거했습니다. Resultset
으로 모든 작업이 완료되면 명령문 인스턴스와 Resultset
을 모두 닫을 수 있습니다.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook