[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 10518] Re: DB トランザク ション度々 commit/rollback を書きたくない)
- From: muimi admin <mui@xxxxxxxxx>
- Date: Sun, 23 Feb 2003 19:44:51 +0900
宮本@muimiです。
>> ちなみにConnection#close()すると
>> Statement#close()
>> ResultSet#close()
>> は自動的にしてくれますよね?
>> JDKの仕様上は。
>snip
>
> 現実には、Driverの実装によっては、そうとは限らないようです。
ありがとうございます。
そんな実装はいいのか?という疑問も残りますが、
リソースの無駄な利用を避けるためにも、
ResultSet#close()/Statement#close()も毎度やっておいた方がいいってことで
すね。
※補足
JDK1.4APIドキュメントの記述(抜粋)
■Connection#close()
Connection オブジェクトは、ガベージコレクトされるときに自動的にクローズ
されます。特定の致命的エラーの場合も、Connection オブジェクトはクローズ
されます。
■Statment#close()
Statement オブジェクトは、ガベージコレクトされるときは自動的にクローズさ
れます。Statement オブジェクトがクローズされるとき、その現在の ResultSet
オブジェクトが存在すれば、それもクローズされます。
データベースのリソースを占有するのを避けるために、通常は、作業が終了した
らすぐにリソースを解放するようにしてください。
■ResultSet#close()
ResultSet オブジェクトは、このオブジェクトを生成した Statement オブジェ
クトが閉じられるとき、再実行されるとき、または一連の複数の結果から次の結
果を取り出すのに使用されるときに、その Statement によって自動的にクロー
ズされます。ResultSet オブジェクトがガベージコレクトされるときにも自動的
にクローズされます。