English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JDBCドライバーは、データベースサーバーとのインタラクションを行うために定義されたインターフェースを実装します。
例えば、JDBCドライバーを使用して、SQLやデータベースコマンドを送信し、その結果をJavaで受信して、データベース接続を開き、そのデータベースと相互作用する方法を説明します。
JDKに付属する Java.sql パッケージには、その行動を定義する様々なクラスが含まれており、実際の実装はサードパーティードライバーで行われます。サードパーティー供給者がそのデータベースドライバーで実装します。 java.sql.Driver インターフェース。
JDBCドライバーの実装は、Javaが実行される多くのオペレーティングシステムとハードウェアプラットフォームによって異なります。Sunは実装を四つのカテゴリーに分類し、それらは以下の通りです。1、2、3および4について説明します。-
タイプ1ドライバーでは、JDBCブリッジを使用して、各クライアントコンピュータにインストールされているODBCドライバーにアクセスします。ODBCを使用するには、システム上でターゲットデータベースを代表するデータソース名(DSN)を設定する必要があります。
Javaが初めて登場したとき、これは多くのデータベースがODBCアクセスのみをサポートしていたため、非常に役立つドライバーでしたが、現在はこの種のドライバーは実験用途や他の代替方法が利用できない場合にのみ使用することをお勧めします。
JDK 1.2付属のJDBC-ODBC Bridgeはこのドライバーの良い例です。
Type 2ドライバーでは、JDBC API呼び出しがデータベース固有のネイティブCに変換されます。 / C ++ API呼び出し。これらのドライバーは通常、データベース供給者が提供し、JDBCと同様に提供されます。-供給者固有のドライバーは、各クライアントコンピュータにインストールする必要があります。
データベースを変更する場合、本機APIを変更する必要があります。なぜなら、それはデータベース固有であり、今は廃れていますが、Typeを使用してODBC Bridgeと同じ方法で使用することができます。 2ドライバーは、ODBCのコストを排除することで速度を向上させることができます。
Oracle Call Interface(OCI)ドライバーはType 2ドライバーの例。
Type 3ドライバーでは、データベースにアクセスするために三層方法を使用します。JDBCクライアントは標準のネットワークソケットを使用してミドルウェアアプリケーションサーバーと通信します。その後、ソケット情報はミドルウェアアプリケーションサーバーがDBMSが必要とする呼び出し形式に変換し、データベースサーバーに転送します。
このドライバーは非常に柔軟であり、クライアント上にコードをインストールする必要がなく、単一のドライバーが実際には複数のデータベースへのアクセスを提供できます。
アプリケーションサーバーをJDBC「エージェント」と見なすと、これはクライアントアプリケーションに対するコールを行うことを意味します。したがって、このドライバータイプを効果的に使用するために、アプリケーションサーバーの設定に関する知識が必要です。
あなたのアプリケーションサーバーは使用する可能性があります1、2または4型ドライバーがデータベースと通信を行う際には、微妙な違いを理解することは役立ちます。
Type 4ドライバーでは、Javaベースの純ドライバーはソケット接続を通じて直接プロバイダーのデータベースと通信します。これはデータベースの性能が最も高いドライバーであり、通常はプロバイダー自身によって提供されます。
このドライバーは非常に柔軟で、クライアントまたはサーバーに特別なソフトウェアをインストールする必要はありません。さらに、これらのドライバーを動的にダウンロードできます。
MySQLのConnector/J ドライバーはType 4ドライバーは、そのネットワークプロトコルの特権的な性質により、データベースプロバイダーは通常、4クラスドライバー。
例えばOracle、Sybase、IBMなどのデータベースタイプにアクセスする場合、推奨されるドライバータイプは4。
あなたのJavaアプリケーションが複数のデータベースタイプに同時にアクセスする場合、タイプ3が推奨されます。
あなたのデータベースではまだ使用できません3型または4型ドライバーの場合、タイプ2ドライバーは非常に役立ちます。
タイプ1ドライバーはデプロイメントレベルのドライバーとは認められず、通常は開発およびテスト目的にのみ使用されます。