22

上記に関する私の理解が正しいかどうかを知る必要があります。

接続プールでは、java.sql.Datasource を使用して複数の接続を設定します。

jdbc では、接続 URL と oracle.jdbc.driver.OracleDriver を直接指定します。これは常に 1 つの接続であり、別のリクエストは接続の処理が完了するまで待機する必要があります。

また、JNDI では、名前を介して jdbc 設定を参照するダイレクト jdbc に似ているため、アプリケーション サーバーで接続 URL やその他の設定を指定し、それらをアプリケーションにバインドする必要はありません。

4

2 に答える 2

27

さて、これらは2つの異なるものです。

JDBC は Java Database Connectivity API であり、JNDI は Java Naming and Directory Interface API です。

ここでの主なことは、JNDI ディレクトリに実際に JDBC DataSource を格納していることです。したがって、JDBC を使用して、JNDI ルックアップ経由で接続を取得するだけです。

簡単に言えば、JDBC はデータベース レルムです。JNDI を使用すると、オブジェクトをローカルまたはリモートの仮想コンテキスト (ディレクトリ) に格納できます (通常、実装の詳細は重要ではありません)。

名前を介してこのコンテキストにアクセスし、格納されたオブジェクトを取得します。これは、異なるモジュール間で共有するのに適しています。

通常、アプリケーション サーバーには、異なるアプリケーション間でグローバル オブジェクトを共有するための JNDI コンテキストがあります。接続プーラーは、JNDI を介した共有が優れている理由の最も明確な例の 1 つです (1 つの接続プーラーを定義し、複数の Web アプリケーション間で共有します)。

于 2013-03-28T08:20:43.003 に答える
6

Java を初めて学習したときは、すべての頭字語に戸惑うことはわかっていますが、それに慣れて、多くの時間を費やして、特に Java/Oracle の公式リソースを読んでください。

于 2013-03-28T08:19:55.680 に答える