ホームページ >データベース >mysql チュートリアル >Java JDBC コードで「ResultSet が閉じられた後は操作が許可されません」がスローされるのはなぜですか?
次のコードが原因で Java JDBC MySQL 例外が発生しました:
Statement statement; public void connect() { statement = connection.createStatement(); }
の説明エラー:
ステートメント インスタンスはすべてのデータベース操作間で共有されます。 SELECT クエリを実行すると、ResultSet オブジェクトが返されます。 ResultSet が (明示的または暗黙的に) 閉じられると、ステートメントに対するそれ以上の操作は、「ResultSet が閉じられた後は操作が許可されません」という例外を除いて失敗します。
解決策:
この問題を解決するには、データベース操作ごとに新しい Statement オブジェクトを作成します。 as:
public ResultSet query(String query) throws SQLException { if (query.toLowerCase().startsWith("select")) { return connection.createStatement().executeQuery(query); } else { connection.createStatement().executeUpdate(query); } return null; }
これにより、クエリごとに新しい Statement が使用されるようになり、ResultSet を閉じる問題が後続の操作に影響を与えることがなくなります。
以上がJava JDBC コードで「ResultSet が閉じられた後は操作が許可されません」がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。