1. JDBC API
- 1.1. JDBCドライバ
- 1.2. データベースへの接続
- 1.3. select文の実行(java.sql.Statementとjava.sql.ResultSet)
1.1. JDBCドライバ
「JDBC(Java Data Base Connectivity)」はJavaからデータベースを呼び出すためのAPIです。正確には直接Javaがデータベースを操作するのではなく、「JDBCドライバ」を介してデータベースを操作することになります。Javaからは「JDBCドライバ」に対して命令を出し、JDBCドライバがその命令に従いデータベースで処理を実行し、そしてその結果を返します。
著名なデータベースであれば必ずといってよいほど、「JDBCドライバ」が提供されています。ドライバはデータベースとの接続形態に応じて以下の4つのタイプに区別されています。
タイプ1:JDBC-ODBCブリッジドライバ
このタイプのドライバは、JDBCに対する呼び出しを全て「ODBC(Open DataBase Connectivity)」ドライバの呼び出しに変換します。Windows上で動作するデータベースは、全てODBCに対応していると言ってよいので、このタイプのドライバが1つあれば、それらのデータベースを全て操作することが可能になります。
ただ毎回ODBCドライバの呼び出しに変換するのでパフォーマンスの点で問題があります。またクライアント・サーバー環境で利用する場合、各クライアントにはJDBCドライバだけでなくODBCドライバもインストールしなければなりません。
タイプ2:ネーティブAPI/部分Javaドライバ
このタイプのドライバはJDBCに対する呼び出しを、個別のデータベースが提供しているネーティブAPIの呼び出しに変換します。データベース・ベンダーが提供するネーティブAPIであるため、タイプ1のドライバよりもパフォーマンスの点で優れています。ただタイプ1のドライバと同じく、クライアント環境にはJDBCドライバに加えてネーティブAPIもインストールしなければなりません。
タイプ3:ネット・プロトコル/Pure Javaドライバ
このタイプのドライバは、JDBCに対する呼び出しをデータベース独自のネットワークプロトコルに変換し、それを中間サーバに転送します。中間サーバは受け取ったプロトコルをネーティブAPIに変換してデータベースにアクセスします。中間サーバは他のタイプのJDBCドライバを用いてデータベースにアクセスする場合もあります。
このタイプの利点は、JDBCドライバをインストールするだけでデータベースにアクセスできる点です。また中間サーバとのプロトコルを工夫する事により、4タイプの中で最も小さいサイズのドライバにする事が可能です。また中間サーバが複数種類のデータベースをサポートする事により、データベースに応じてJDBCドライバを変える必要もなくなります。その点において、最もポータビリティに優れたJDBCドライバと言えます。
また中間サーバによっては負荷分散・キャッシングの機能を提供しているものもあります。パフォーマンス的にも優れたものと言えるでしょう。
タイプ4:ネーティブ・プロトコル/Pure Javaドライバ
このタイプのドライバは、データベース固有のプロトコルを利用してデータベースに直接アクセスします。全てJavaで記述されているため、特定のプラットフォームに依存せず、ドライバをインストールするだけでデータベースにアクセスできます。
このタイプの利点はタイプ3と同じくポータビリティに優れている点です。ただ全ての機能をドライバで提供しなければならないので、タイプ3に比べるとドライバのサイズが大きくなります。またデータベース毎にドライバを用意しなければならないという欠点もあります。
ドライバはポータビリティの点から考えて、タイプ3または4のものを選択するのがよいでしょう。ただタイプ1および2のドライバもタイプ3および4のものに比べて、パフォーマンスの点では優れている事が多いです。目的に応じて使い分けると良いでしょう。