Jdbc-driver-types

提供:Dev Guides
移動先:案内検索

JDBC-ドライバーの種類

JDBCドライバーとは何ですか?

JDBCドライバは、データベースサーバーと対話するために、JDBC APIで定義されたインターフェイスを実装します。

たとえば、JDBCドライバーを使用すると、SQLまたはデータベースコマンドを送信してからJavaで結果を受信することにより、データベース接続を開き、データベース接続と対話できます。

JDKに付属の_Java.sql_パッケージには、動作が定義されたさまざまなクラスが含まれており、実際の実装はサードパーティのドライバーで行われます。 サードパーティベンダーは、データベースドライバーに_java.sql.Driver_インターフェイスを実装しています。

JDBCドライバーのタイプ

JDBCドライバーの実装は、Javaが動作するさまざまなオペレーティングシステムとハードウェアプラットフォームのために異なります。 Sunは、実装タイプを以下に説明するタイプ1、2、3、および4の4つのカテゴリに分けました-

タイプ1:JDBC-ODBCブリッジドライバー

タイプ1ドライバーでは、JDBCブリッジを使用して、各クライアントマシンにインストールされているODBCドライバーにアクセスします。 ODBCを使用するには、システムでターゲットデータベースを表すデータソース名(DSN)を構成する必要があります。

Javaが最初に登場したとき、ほとんどのデータベースはODBCアクセスのみをサポートしていたため、これは便利なドライバーでしたが、現在このタイプのドライバーは実験的使用または他の代替手段がない場合にのみ推奨されます。

DBMS Driver type 1

JDK 1.2に付属するJDBC-ODBCブリッジは、この種のドライバーの良い例です。

タイプ2:JDBCネイティブAPI

タイプ2ドライバーでは、JDBC API呼び出しは、データベースに固有のネイティブC/C ++ API呼び出しに変換されます。 これらのドライバーは通常、データベースベンダーから提供され、JDBC-ODBCブリッジと同じ方法で使用されます。 ベンダー固有のドライバーを各クライアントマシンにインストールする必要があります。

データベースを変更する場合、ネイティブAPIはデータベースに固有であり、現在ほとんどが廃止されているため、ネイティブAPIを変更する必要がありますが、ODBCのオーバーヘッドを排除するため、Type 2ドライバーを使用すると速度がいくらか向上する場合があります。

DBMS Driver type 2

Oracle Call Interface(OCI)ドライバーは、タイプ2ドライバーの例です。

タイプ3:JDBC-Net pure Java

タイプ3ドライバーでは、3層アプローチを使用してデータベースにアクセスします。 JDBCクライアントは、標準のネットワークソケットを使用してミドルウェアアプリケーションサーバーと通信します。 ソケット情報は、ミドルウェアアプリケーションサーバーによってDBMSが必要とする呼び出し形式に変換され、データベースサーバーに転送されます。

この種類のドライバーは、クライアントにコードをインストールする必要がなく、1つのドライバーで複数のデータベースへのアクセスを実際に提供できるため、非常に柔軟です。

DBMS Driver type 3

アプリケーションサーバーは、JDBCの「プロキシ」と考えることができます。これは、クライアントアプリケーションを呼び出すことを意味します。 そのため、このドライバータイプを効果的に使用するには、アプリケーションサーバーの構成に関する知識が必要です。

アプリケーションサーバーは、タイプ1、2、または4のドライバーを使用してデータベースと通信する場合があります。ニュアンスを理解すると役立つことがわかります。

タイプ4:100%Pure Java

タイプ4ドライバーでは、純粋なJavaベースのドライバーは、ソケット接続を介してベンダーのデータベースと直接通信します。 これは、データベースで利用可能な最高のパフォーマンスのドライバーであり、通常、ベンダー自体によって提供されます。

この種のドライバーは非常に柔軟で、クライアントまたはサーバーに特別なソフトウェアをインストールする必要はありません。 さらに、これらのドライバーは動的にダウンロードできます。

DBMS Driver type 4

MySQLのConnector/Jドライバーは、タイプ4ドライバーです。 ネットワークプロトコルの独自性により、データベースベンダーは通常タイプ4ドライバーを提供します。

どのドライバーを使用する必要がありますか?

Oracle、Sybase、IBMなどの1つのタイプのデータベースにアクセスしている場合、優先ドライバータイプは4です。

Javaアプリケーションが複数のタイプのデータベースに同時にアクセスしている場合、タイプ3が優先ドライバです。

タイプ2ドライバーは、データベースでタイプ3またはタイプ4ドライバーがまだ利用できない状況で役立ちます。

タイプ1ドライバーは展開レベルのドライバーとは見なされず、通常は開発およびテストの目的でのみ使用されます。