ResultSet を閉じた後に Java エラー操作が許可されない
-
Java エラー
java.sql.SQLException: ResultSet が閉じられた後、操作は許可されません
-
Java エラー
java.sql.SQLException: Operation not allowed after ResultSet closed
を修正する
このチュートリアルでは、Java での java.sql.SQLException: ResultSet が閉じられた後に操作は許可されません
エラーについて説明します。
Java エラー java.sql.SQLException: ResultSet が閉じられた後、操作は許可されません
Operation Not Allowed After Resultset Closed
というエラーは、クローズされた結果セットにアクセスしようとしたときの 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: Operation not allowed after ResultSet closed
を修正する
コードの問題は、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