0

.NETの機能について読んだとき、1つのdb接続で1つreaderしか開くことができないことがわかりました。readerしたがって、接続プールを使用する必要があるため、アプリケーションはクラッシュせずに動作します。この場合、接続にシングルトンパターンを適用することもできません。しかし、Javaで同じアプリケーションを開発し始めると、同じ接続で多くのことができるようになり、接続にシングルトンパターンを適用することもできるようになりました。毎回ステートメントオブジェクトを作成する必要があります。

今私の質問は次のとおりです。

  1. .NETでdb接続オブジェクトにこの制限があるのはなぜですか?
  2. Javaでこれが許可されている場合、なぜ接続プールを使用する必要があるのでしょうか。
4

2 に答える 2

0

Connectionいいえ、 Java では単一で任意に多くのことを一度に行うことはできません。いくつかのことでうまくいくかもしれませんが、一般にConnection、Java の a は一度に (単一のスレッドによって) 1 つのことだけに使用する必要があります。トランザクションは. _Connection

その音からすると、.NET はまったく同じように動作するように見えますが、Java で試したことは幸運でした。

Java での正しいアプローチは、接続プールを使用することです。ビジネス操作を行うたびに、プールから接続を取得し、その接続を使用してデータベース操作を行い、接続をプールに返します (単に を呼び出すだけ.close()でよいことです)。接続がプールからのものであるか、要求するたびに再作成されるかを実際に気にする必要はないということです)。

.NET でも非常に似ていると思います。

于 2012-07-25T09:22:14.503 に答える
-1
  1. データベースへの実際の接続はそのように制限されているためです。Java の接続オブジェクトは、必要に応じてデータベース接続をさらに開くだけです。.NET の接続オブジェクトに同じことをさせる設定がありますが、リソースをより適切に制御できるデフォルト モードを使用することをお勧めします。

  2. Java の接続オブジェクトはプールからデータベース接続を取得するためです。データベースへの新しい接続を開く場合、複数のリーダーに対して接続オブジェクトを使用するたびに、パフォーマンスが大幅に異なることがわかります。

于 2012-07-25T09:18:23.130 に答える