目次へ

1. JDBC API

1.1. JDBCドライバ

「JDBC(Java Data Base Connectivity)」はJavaからデータベースを呼び出すためのAPIです。正確には直接Javaがデータベースを操作するのではなく、「JDBCドライバ」を介してデータベースを操作することになります。Javaからは「JDBCドライバ」に対して命令を出し、JDBCドライバがその命令に従いデータベースで処理を実行し、そしてその結果を返します。

JDBCドライバの図

著名なデータベースであれば必ずといってよいほど、「JDBCドライバ」が提供されています。ドライバはデータベースとの接続形態に応じて以下の4つのタイプに区別されています。

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

このタイプのドライバは、JDBCに対する呼び出しを全て「ODBC(Open DataBase Connectivity)」ドライバの呼び出しに変換します。Windows上で動作するデータベースは、全てODBCに対応していると言ってよいので、このタイプのドライバが1つあれば、それらのデータベースを全て操作することが可能になります。

ただ毎回ODBCドライバの呼び出しに変換するのでパフォーマンスの点で問題があります。またクライアント・サーバー環境で利用する場合、各クライアントにはJDBCドライバだけでなくODBCドライバもインストールしなければなりません。

JDBC-ODBCブリッジドライバの図
タイプ2:ネーティブAPI/部分Javaドライバ

このタイプのドライバはJDBCに対する呼び出しを、個別のデータベースが提供しているネーティブAPIの呼び出しに変換します。データベース・ベンダーが提供するネーティブAPIであるため、タイプ1のドライバよりもパフォーマンスの点で優れています。ただタイプ1のドライバと同じく、クライアント環境にはJDBCドライバに加えてネーティブAPIもインストールしなければなりません。

ネーティブAPI/部分Javaドライバの図
タイプ3:ネット・プロトコル/Pure Javaドライバ

このタイプのドライバは、JDBCに対する呼び出しをデータベース独自のネットワークプロトコルに変換し、それを中間サーバに転送します。中間サーバは受け取ったプロトコルをネーティブAPIに変換してデータベースにアクセスします。中間サーバは他のタイプのJDBCドライバを用いてデータベースにアクセスする場合もあります。

このタイプの利点は、JDBCドライバをインストールするだけでデータベースにアクセスできる点です。また中間サーバとのプロトコルを工夫する事により、4タイプの中で最も小さいサイズのドライバにする事が可能です。また中間サーバが複数種類のデータベースをサポートする事により、データベースに応じてJDBCドライバを変える必要もなくなります。その点において、最もポータビリティに優れたJDBCドライバと言えます。

また中間サーバによっては負荷分散・キャッシングの機能を提供しているものもあります。パフォーマンス的にも優れたものと言えるでしょう。

ネット・プロトコル/Pure Javaドライバ
タイプ4:ネーティブ・プロトコル/Pure Javaドライバ

このタイプのドライバは、データベース固有のプロトコルを利用してデータベースに直接アクセスします。全てJavaで記述されているため、特定のプラットフォームに依存せず、ドライバをインストールするだけでデータベースにアクセスできます。

このタイプの利点はタイプ3と同じくポータビリティに優れている点です。ただ全ての機能をドライバで提供しなければならないので、タイプ3に比べるとドライバのサイズが大きくなります。またデータベース毎にドライバを用意しなければならないという欠点もあります。

ネーティブ・プロトコル/Pure Javaドライバ

ドライバはポータビリティの点から考えて、タイプ3または4のものを選択するのがよいでしょう。ただタイプ1および2のドライバもタイプ3および4のものに比べて、パフォーマンスの点では優れている事が多いです。目的に応じて使い分けると良いでしょう。

 

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ