sql >> データベース >  >> RDS >> Mysql

java.sql.SQLExceptionの取得:ResultSetを閉じた後の操作は許可されていません

    問題は、getStuff()でデータをフェッチする方法にあります 。 getStuff()にアクセスするたびに 新しいResultSetを取得します しかし、あなたはそれを閉じません。

    これは、Statementの期待に違反します クラス(ここを参照- http://docs。 oracle.com/javase/7/docs/api/java/sql/Statement.html ):

    デフォルトでは、Statementオブジェクトごとに1つのResultSetオブジェクトのみを同時に開くことができます。したがって、あるResultSetオブジェクトの読み取りが別のオブジェクトの読み取りとインターリーブされている場合、それぞれが異なるStatementオブジェクトによって生成されている必要があります。 Statementインターフェースのすべての実行メソッドは、開いているオブジェクトが存在する場合、ステートメントの現在のResultSetオブジェクトを暗黙的に閉じます。

    事態をさらに悪化させるのは、rsです。 呼び出し元のコードから。また、Statementから派生しています。 フィールドが閉じられていません。

    結論:いくつかのResultSetがあります 同じStatementに関連する オブジェクトが同時に開かれました。



    1. pipのインストールが/usr/ bin / clangで失敗する:そのようなファイルやディレクトリはありません

    2. Oracle11g-RegExで制約をチェック

    3. PostgreSQLで更新+参加するにはどうすればよいですか?

    4. WHERE句に条件があるLEFTJOINが、ONにある同じLEFT JOINと同等ではないのはなぜですか?