2017-01-24 10 views
0

単一接続オブジェクトを使用して単一の関数で複数のクエリを実行しようとしています。このようなシナリオでデータベース接続を閉じるベストプラクティスを知りたいと思います。現在、すべてのdb呼び出しが完了すると、接続を閉じます。私は、接続を閉じて、すべてのdbコールのための新しい接続を開く必要があるかどうか疑問に思っています。どちらが良いですか?同じ関数内でデータベースを複数回呼び出すときにJDBC接続を閉じる

+0

は、なぜあなたは、データベースへのすべての呼び出しのための新しい接続を閉じる/作成する必要性を感じるでしょうか? @Seanが示唆しているものを使用すると、複数の呼び出しを含むことができるトランザクションごとにインスタンスを使用することがより理にかなっています。 – px06

答えて

1

Connectionは可能な限り開いたままにしてください。データベース接続を作成するのは(比較的)高価な操作なので、必要な頻度で行う必要はありません。寿命を管理するに

は、あなたが上にあると仮定しthe try-with-resources statementを使用する必要があり、少なくともJavaの7:

try (Connection connection = myDataSource.getConnection()) { 
    // Do your queries here 
} 
+0

しかし、他のdbコールで使用できる接続を使用しないでください。 – KItis

+1

私は従いません。ある行で複数のクエリを実行する場合、それらの間の 'Connection'を解放しないでください。 –

+0

私は完全には同意しません、できるだけ早く(論理的な)接続を閉じるべきです(つまり、作業単位が完了したとき)。物理接続を作成する費用は、接続プールを使用して補う必要があります。 –

関連する問題