2

JavaDoc forStatementは明確です:

ステートメントインターフェイスのすべての実行メソッドは、開いているオブジェクトが存在する場合、ステートメントの現在のオブジェクトを暗黙的に閉じResultSetます。

オブジェクトが閉じられるStatementと、現在のResultSetオブジェクト(存在する場合)も閉じられます。

ただし、 StackOverflowと一般的なWebの両方で閉じるResultSet前に複数の推奨事項があります。Statement(おそらくバグのあるドライバーが原因で)閉じても問題Statementが発生しない既知のケースはありResultSetますか?

4

1 に答える 1

3

バグのあるJDBCドライバーがResultSetを閉じることができなかった可能性があります。とにかく、具体的かつ意図的であることが最善であるため、try...finallyブロックでResultSetを閉じる必要があります。JDK7を使用している場合は、try句でResultSet変数を宣言できます。これは、AutoCloseableを実装しているため、finally句なしで自動的に閉じられます。

于 2013-01-20T19:38:35.120 に答える