2012-07-16 5 views
17

アプリケーションデータベース接続を構成する2つのオプションがあります.1つはJDBCを使用し、もう1つはJNDIを使用しています。これらの接続タイプがデータベースとどのくらい速く動作するかという点で、最適なオプションは何でしょうか。より速いもの:JDBCまたはJNDI?

私は、異なる原則を使用した2つの異なるタイプのデータベース接続であることを理解しています(JDBCはダイレクトDB接続、JNDIはアプリケーションサーバー側のデータベース接続プール構成です)。しかし、他の一般的なJDBC/JNDIの賛否両論は、動作速度より重要かもしれませんか?はいの場合、彼らは何ですか?

+0

JNDIとは、サーバー上でデータソースを定義することです。 – Tomer

+0

@ ftom2:はい、それは私が意味していたことです - アプリケーションサーバー上のJNDIデータソースの設定 – altern

+0

JNDIはJDBCを使用してデータベース接続を取得するアプリケーション開発者またはアプリケーションサーバーを支援するいくつかのプロパティを返すので、JNDIとJDBCの間にパフォーマンスの関係はありません;データベース接続用の低レベルのAPI。 – Max

答えて

21

は、コンテナ内のデータソースをアプリケーションに手動でデータソースまたはJDBC接続を作成する、または

  • セットアップ

    1. から選択され、アプリケーションはJNDI
    を通じてデータソースをルックアップ

    可能であれば、常に2に固執してください。

    選択の主な理由は決してパフォーマンスの違いではありません。ほとんどの場合、2に固執する理由は、分散トランザクションなど、コンテナからより高度な機能を得るためです。

  • 30

    データベース接続では常にJDBCが使用されます。 JNDIを使用すると、名前で参照できるディレクトリサービスにデータソースを登録できます。したがって、JDBCとJNDIは完全に異なり、互換性がありません。

    +0

    +1 - まったく;-) –

    2

    質問に完全にはっきりしません。

    JNDIは、データベース接続の一種ではありません。 JNDIを使用すると、接続のファクトリであるDataSourceをルックアップできます。 DataSourceはJDBC APIの一部ですが、JNDIはここでの代替ではなくJDBCで動作します。

    ディレクトリ情報のデータベースに対するJDBCの使用と、LDAPリポジトリに対するJNDIの使用についてはお話ですか?

    2

    実際の速度の利点は、データベース接続を再利用できることにあります。

    したがって、データベース接続プーリングを提供し、適切なテクノロジを使用してプールにアクセスする方法を使用する必要があります。実装によっては、これはJDBC(ドライバがそれをサポートしている場合)またはJNDIまたはまったく異なるものです。

    アプリケーションがWebコンテナ内で実行されている場合は、JNDIを使用して、アプリケーション内ではなくWebコンテナでプールを構成および管理できるのが一般的です。

    1

    以前の回答で述べたように、Datasourceを使用することは、技術面でJDBCを使用することと同じです。

    しかし、データソースを使用するのは、通常、サーバーがDB接続プールを管理するためです。

    1

    接続プーリングを使用するかどうかは、アプリケーションコードに影響しません。アプリケーションは、以前に登録されたデータソースのJNDI名でルックアップを実行するため、アプリケーションにコードを変更する必要はありません。データソースでJNDI登録時に接続プールの実装を指定した場合(セクションCreating a Data Source Using the DataDirect Connection Pool Managerを参照)、クライアントアプリケーションは接続プーリングによる高速接続の利点があります。私はあなたが何を意味するか賭け

    1

    質問は無意味です。何をもっと速く?比較するものはありません。 JDBCは、リレーショナルデータベースへの汎用インタフェースです。 JNDIは、ネーミングシステムの汎用インタフェースです。強い確率は、いずれかの効率が、通信されているターゲットシステムの99%に依存するということです。どのような場合でも、リレーショナルデータベースとネーミングシステムは、完全に異なるニーズを満たしており、ほとんど同じではありません。通常はJNDIを使用して接続を取得し、その接続でJDBCを使用して操作します。

    3

    これは私がJNDIとJDBCについて見つけたものです。

    JNDI:サーバーとデータソースの名前をリモートから検索するための電話帳のように機能するテクノロジです。

    JNDIによって接続プールが作成されます。接続プールは、JNDIとデータベースがType4接続用にカプセル化されたサーバー上の環境です。

    JDBC: JavaプログラムがSQL文を実行できるようにするJava API。 これにより、JavaプログラムはSQL準拠のデータベースと対話できます。

    JDBCはODBCと似ていますが、ODBCは言語に依存しませんが、Javaプログラム専用に設計されています。

    JDBCはSun Microsystemsによって開発されました。 JNDIはより高速で効率的です。

    +1

    もう一度;自分のウェブサイトにリンクする際に開示する必要性について複数回通知していますが、何度も繰り返されていません。 –

    +0

    私はそれを修正します。 – Ruthreshwar

    関連する問題