私はJavaの接続とデータソースについて読んでいますが、いくつか質問があります。データソースは本当に単なるマネージャであり、接続(または複数の接続)の抽象化ですか?接続とデータソースの比較
答えて
:
このDataSourceオブジェクトが表す物理データソースへの接続のためのファクトリ。 DriverManager機能の代替として、DataSourceオブジェクトが接続を取得するのに適しています。
実際、DataSource
はConnection
複数のベンダーであり、それは異なる方法で動作する実装の多様を有します。以下のような:
基本実装 - 標準Connectionオブジェクトに
接続プーリングの実装を生成します - 自動的に接続プールに参加するConnectionオブジェクトを生成します。この の実装は、中間層の接続プーリングマネージャで動作します。
分散トランザクションの実装 - 分散トランザクションに使用できるConnectionオブジェクトを生成し、ほとんどの場合、接続プールには が参加します。この実装は、 中間層トランザクション・マネージャーで動作し、ほとんどの場合、接続マネージャー プーリング・マネージャーを使用して動作します。
データソースはデータのソースで、接続はドライバです。
接続は接続です:) DataSourceは接続(接続のプール)のマネージャです。
docs から、それが最初の場所でと対話するためのいくつかのSQL接続を返すべきではありません抽象相互作用することを意図したかのようにデータソースは、その既存のフォームで病気概念です。また、それは過剰なものであり、XAは世界で信頼できる実装が欠如していることを心から賞賛しているファンタジーコンセプトです(私はすべてのエンタープライズ商用実装者が単に失敗してビジネスを公開する...誰かが財政的に傷ついているのですが、名前)。一般に、Sunやオラクルの推奨にかかわらず、オーバーエンジニアリングやコードの技術的な汚れが発生します(コンテキスト、データへの追加手順、外部構成など...)。ベンダーの実装はとにかく)。エンタープライズDBMSベンダーが提供するDataSource実装よりも、プレーン接続とDriverManagerをベースにしたプーリング、接続リカバリe.t.cの方がはるかに優れているコロポレートソリューションを開発しました。
私は両方で働いていましたが、私は別の場所で遭遇した事実に基づいています。そしてそれが疑わしいなら、Hibernateの設定で明白なJDBC URLをビジネスのあらゆる場所で見ることができるのかと尋ねます。多くの場合、単純にJ2EEの重大なアイデアをダンプし、軽量化します...また、DriverManagerに基づくプレーンな接続を使用します。
あなたはオンラインでキャリアを取得し、XA DataSourcesと不良XA実装がひどく失敗したトランザクションの回復を進めたいと考えています。
この回答が100%正確で正しいかどうかはわかりません。 –