1

ステートメントステートメント; 接続接続;

以下のように、データベース操作ごとに接続を閉じています。

connection.close();

以下のようにステートメントオブジェクトを作成しました。

connection.createStatement(....)

接続を閉じるのと同様にステートメントを閉じる必要がありますか?

つまり、statement.close(); を呼び出す必要がありますか?

呼び出されないとどうなりますか?

ありがとう!

4

2 に答える 2

5

Javadocはそれをすべて言います:

Statement.close()

この Statement オブジェクトのデータベースと JDBC リソースを、自動的に閉じられるまで待つのではなく、ただちに解放します。データベース リソースを拘束しないように、リソースの使用が終了したらすぐにリソースを解放することをお勧めします。

close()が常に呼び出されるようにする良い方法の 1 つは、finallyブロック内に配置することです。

Statement stmt = connection.createStatement();
try {
    // use `stmt'
} finally {
    stmt.close();
}

Java 7 では、上記をより簡潔に次のように記述できます。

try (Statement stmt = connection.createStatement()) {
    // ...
}

これはtry-with-resources ステートメント と呼ばれます。

于 2012-05-09T10:16:02.063 に答える
0

一般に、接続を閉じると、ドライバーの実装者が正しく作業を行っていれば、関連するすべてのリソースも閉じられます。とは言っても、リソースを使い終わったら、リソースを閉じる方が良いでしょう。これにより、あなたの側とデータベースの両方でリソースが解放されます。

于 2012-05-12T07:45:20.580 に答える