ResultSet이 닫힌 후 Java 오류 작업이 허용되지 않음

Sheeraz Gul 2023년10월12일
  1. Java 오류 java.sql.SQLException: ResultSet이 닫힌 후 작업이 허용되지 않음
  2. Java 오류 수정 java.sql.SQLException: ResultSet이 닫힌 후 작업이 허용되지 않음
ResultSet이 닫힌 후 Java 오류 작업이 허용되지 않음

이 튜토리얼은 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 Gul
Sheeraz Gul avatar Sheeraz Gul avatar

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

관련 문장 - Java Error