2016-09-29 7 views
0

私はJDBCを使ってデータベースとやりとりするスイングチュートリアルを進めています。このチュートリアルでは、過去にデータベースとやりとりするときとは異なるアプローチを使用しています。リソースで試すJDBCクエリ

以前は、更新またはクエリに1つの方法が使用されていました。リソースブロックで試行して接続オブジェクトとステートメントを作成すると、クエリが実行された後、接続が自動的に閉じられました。私はこれが正しい方法だと信じていました。

このスイングチュートリアルでは、接続を作成するメソッド、クエリを実行するメソッド、および接続を閉じるメソッドがあります。私が見ているように、データベースへの接続は、アプリケーションのライフサイクルの間、開いたままになっています。これは一般的なプラクティスですか?これは2013年のチュートリアルなので、時代遅れの可能性があります。

私はJDBCについて非常に慣れ親しんでおり、現在推奨されているアプローチが何であるか知りたいと思います。

おかげ

謝罪私の質問があいまいである場合。私が主に関心を持っていたのは、各操作のために接続を開いたり閉じたりするか、アプリケーションが動作している間だけ接続を開いたままにするかどうかでした。

接続と切断をそれぞれの方法に分けるとメリットはありますか?

+0

最近のチュートリアルを検索します。 – TimeToCode

+0

接続を開いたままにしておくスタンドアロンのデスクトップアプリケーションの場合、完全に有効です。 –

+0

ありがとうございます。両方のあなたに。 – James

答えて

1

複数のユーザーのWebアプリケーションなど、リソースに対して複数のユーザー(スレッド)が競合している場合は、try-with-resourcesが必要です。これらの場合、close()は実際に接続を閉じることはありません。プールに戻すだけで、他のスレッドがチェックアウトできるようになります。

単一のユーザーのSwingアプリケーションを作成している場合、それを使用する唯一のユーザーとして、Connectionを開いたままにしておくことは有害ではありません。

+0

ありがとうございます。答えとして数分でマークする。 – James

+2

@Kayaman Try-with-resourceはマルチスレッドとは何の関係もありません – talex

+0

@talexそれは私の言っていることではありません。私は、複数のユーザーが共有するリソース(Webアプリケーションのスレッドなど)を扱っている場合は、それをすべて自分で保有することはできないと言っていました。答えを読むときは注意してください。 – Kayaman

関連する問題