ホームページ >データベース >mysql チュートリアル >Java JDBC で「ResultSet が閉じられた後は操作が許可されません」という MySQL 例外を解決するにはどうすればよいですか?
MySQL 例外: Java JDBC の「ResultSet クローズ後の操作は許可されません」
データベースを操作する場合、データベースの状態を理解することが重要です。データオブジェクトを使用してエラーを防ぎます。 JDBC でよくある例外の 1 つは、「ResultSet が閉じられた後は操作が許可されません」エラーです。この問題の原因と解決策を調べてみましょう。
原因:
JDBC では、ResultSet はデータベース クエリの結果セットを表します。クエリを実行して ResultSet を取得したら、それを反復処理し、明示的に閉じてシステム リソースを解放する必要があります。閉じられた ResultSet に対して操作を実行しようとすると、「ResultSet が閉じられた後は操作は許可されません」という例外が発生します。
解決策:
このコードでは、寄付レコードを取得するクエリによって返された ResultSet を反復処理しているときに、MySQLDonation クラスでエラーが発生します。具体的には、この問題は、Select クエリの実行と後続の Delete クエリの実行の両方に同じ Statement オブジェクトが使用されるために発生します。
推奨アプローチ:
これを解決するにはこの問題を解決するには、同じステートメントを再利用するのではなく、クエリを実行するたびに新しい Statement オブジェクトを作成します。このアプローチを実装する手順は次のとおりです。
これらの手順に従うことで、ResultSet の各操作が新しく作成された Statement オブジェクトを使用して実行されるようになり、ResultSet が途中で閉じられるのを防ぐことができます。このアプローチにより、コードは寄付レコードを正しく処理し、「ResultSet が閉じられた後は操作は許可されません」例外を回避できるようになります。
以上がJava JDBC で「ResultSet が閉じられた後は操作が許可されません」という MySQL 例外を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。