web-dev-qa-db-ja.com

接続プール、jdbc、jndiの違い

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

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

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

JNDIを使用すると、jdbc設定を名前で参照する直接jdbcに似ているため、アプリケーションサーバーで接続URLやその他の設定を指定して、それらをアプリケーションにバインドできません。

18
Harshana

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

JDBCはJavaデータベース接続API、JNDIはJavaネーミングおよびディレクトリインターフェースAPIです。

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

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

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

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

20
BigMike

あなたが最初にJavaを学んだときにすべての頭字語が気が遠くなることを知っていますが、それに慣れ、多くの時間を費やして読んでください。特にJava/Oracleの公式リソース

4
gerrytan