5

DataSourceオブジェクトの取得方法がわかりません。このメソッドを使用して、localhost で実行されている SQL データベースへの接続を取得できましたが、このDriverManagerメソッドを使用して接続しようとするたびに、DataSource例外が発生します (主に名前付けのため)。

私が疑問に思っていたのは:

  1. DataSourceローカルでホストされているデータベースのオブジェクトを取得することはできますか?
  2. DataSourceクラスを公開する必要がありますか?それとも、新しいクラスを作成せずに接続を取得するだけのようなものですDriverManagerか?
  3. 例を示していただけますか?
4

1 に答える 1

7

ADataSourceでは、主に接続プールから JDBC 接続を取得できます。オブジェクトは、特定のDataSourceDBMS またはファイルなどの他のデータ ソースを表します。企業が複数のデータ ソースを使用している場合、DataSourceそれぞれに個別のオブジェクトをデプロイします。DataSourceインターフェイスは、ドライバー ベンダーによって実装されます。DB 接続プロパティ ファイルを外部化し、JNDI を使用してオブジェクトをフェッチします。を使用するDatasourceと、JNDI 名のみを知る必要があります。アプリケーションサーバーは詳細を気にします。

次の 3 つの方法で実装できます。

  1. 基本的なDataSource実装では、分散トランザクションでプールまたは使用されない標準の Connection オブジェクトが生成されます。
  2. 接続プールをサポートするDataSource実装は、接続プールに参加する接続オブジェクト、つまりリサイクル可能な接続を生成します。
  3. 分散トランザクションをサポートするDataSource実装では、分散トランザクション (つまり、2 つ以上の DBMS サーバーにアクセスするトランザクション) で使用できる Connection オブジェクトが生成されます。

同様に、Spring では、XML ファイルでデータソースを構成し、(1) Bean に注入するか、(2) から取得することができApplicationContextます。

DataSource ds = (DataSource) ApplicationContextProvider.
                            getApplicationContext().getBean("myDataSource");
Connection c = ds.getConnection();

推奨読書:

  1. DataSource オブジェクトとの接続
  2. DriverManager の代わりに DataSource を使用するのはなぜですか?
  3. JDBC を使用したデータ アクセス
  4. JNDIなしでDataSourceを使用してDB接続を取得するには?
  5. JNDI を使用せずに DB 接続を管理する最良の方法
于 2013-07-24T07:56:34.177 に答える