JDBCの基礎知識

JDBCの種類と使い分けを教えてください

テンアートニ 古川原光子
2001/5/29

 JDBCドライバは、その実装方式から4つのタイプに分類されています。なぜ、4つもタイプがあるのでしょうか? それぞれのタイプにはどういった違いがあり、開発者はどういった点を考慮する必要があるのでしょうか? ここでは、これら4つのタイプについてそれぞれの特徴を見ていきます。

■TYPE1:JDBC-ODBCブリッジドライバ

 このドライバは、JDBC APIの呼び出しをODBC API呼び出しに変換するブリッジコンポーネントで、Windows用とSolaris用のドライバはJDKに付属しています。ODBCドライバを経由してDBMSに接続することになるので、JDBC-ODBCドライバを使用するクライアントマシンにODBCドライバがインストールされていることが必須となります。

 特徴としては、ODBCを経由することによりODBCに対応する多くのDBMSを利用することができ、既存のシステムを利用する際に、JDBCに対応しているかどうかに煩わされることはありません。しかし、ネイティブなコードを一部含むので、アプレットのようにネットワークを介してダウンロードして使用することはできません。あらかじめ必要なものはクライアントマシンにインストールしておく必要があります。従って、このドライバは、クライアントマシンのソフトウェア管理やコントロールが大きな問題にならない企業ネットワークなどで使用する場合に適します。

■TYPE2:ネイティブブリッジドライバ

 このドライバは、JDBC APIの呼び出しをDBMS固有のクライアントAPI呼び出しに変換します。例えば、OracleではNet8、InformixではI-Connect、SybaseではOpenClientによりDBMSへ接続することになります。ドライバの主な供給元は、DBMSへの接続ミドルウェアのベンダになります。

 これらのベンダ依存のネットワークライブラリは、各クライアントにインストールされていなければなりません。従って、JDBC-ODBCブリッジドライバと同様に、このドライバもネイティブなコードを含むことになり、アプレットのようにネットワークを介してダウンロードして使用することはできません。あらかじめ必要なものはクライアントマシンにインストールしておく必要があるので、クライアントマシンのソフトウェア管理やコントロールの問題があります。

 TYPE1、TYPE2のドライバは100% Pure Javaでないために、Java本来の利点である自動インストールや「Write Once, Run Anywhere(一度書いたプログラムがどこでも動く)」を実現することができません。これらはPure Javaドライバがまだ使用可能でない間の過渡的なソリューションであるとされています。以前はODBC対応のDBMSが豊富であったことと、JDKに付属されていたためにTYPE1が最もポピュラーなドライバでした。しかし、現在では多くのベンダがPure Javaドライバを供給するようになり、その座は下記のPure Javaドライバに取って代わられました。

■TYPE3:ネットプロトコルドライバ

 このタイプは、JDBCドライバの形態の中で最も柔軟性を持つソリューションです。接続形態は、中継サーバがPure JavaドライバとDBMSを仲介する構成になります。中継サーバはクライアントとなるドライバを多種類のDBMSに接続できます。

 ドライバ部分は、JDBC APIをDBMSに依存しないネットプロトコルに変換し、中継サーバに接続します。中継サーバは、ネットプロトコルをDBMS特有のプロトコルに変換し、ドライバとDBMSとの接続を仲介します。ドライバと中継サーバ間で使用されるネットプロトコルは、中継サーバを提供するベンダ独自のものとなり、ドライバ自体の主な供給元も中継サーバを供給するベンダになります。

 このドライバ部分にはネイティブなコードは含まれないので、ネットワークを介してダウンロードして使用することができます。また、一般に主要な処理は中継サーバが行うことになるのでドライバ部分の処理は単純化でき、そのプログラムサイズは軽量になります。

 中継サーバプログラム自体は、Pure Javaである必要はありません。

■TYPE4:ネイティブプロトコルドライバ

 TYPE4のドライバは、Pure JavaドライバでJDBC呼び出しを直接DBMS固有のネットワークプロトコルに変換します。これにより、クライアントマシンからDBMSサーバへの直接接続が可能になり、イントラネットアクセスのための優れたソリューションといえます。DBMS固有のネットワークプロトコルを直接インプリメントする必要があるため、DBMSベンダ自身が主な供給元となります。

 TYPE3ドライバと同様に、Pure Javaドライバなので、ネットワークを介してダウンロードして使用することができます。しかし、DBMSへの接続に必要なすべての処理が含まれるため、TYPE3ドライバと比較してドライバサイズは大きくなります。

 これらTYPE3、4のドライバは、自動インストールをはじめとしたJavaテクノロジのすべての利点を提供することができるという点で最も望ましいソリューションでしょう。

ドライバの種類 Pure Java ダウンロード可能か? DBへの接続
TYPE1 JDBC-ODBCブリッジ × × 直接
TYPE2 ネイティブ・ブリッジ × × 直接
TYPE3 ネットプロトコル ドライバ部分=○
中継サーバ=不定
間接
TYPE4 ネイティブプロトコル 直接

 4種類のドライバの違いは接続の構成の違いで、それぞれに利点や欠点が存在します。また、どの種類のドライバを選択したとしても、ソースコードをドライバに合わせて修正する必要はなく、変化するものはシステム構成だけです。このことにより、データベース接続にJDBCを用いるアプリケーションのポータビリティは保証されます。

 このことを踏まえて、システムを構築するうえで最も適したドライバを選択するようにしましょう。ただし使用するシステム構成によっては、一部の種類のドライバが供給されていないことがあります。利用可能なドライバはWeb上で公開されていますのでこちら(http://java.sun.com/products/jdbc)から参照してください。


「Java Solution FAQ」




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間