JDBCとは

1.1 JDBCとは

 JDBCは、Javaとデータベースの接続のためのAPIで、Javaからデータベースへアクセスし、データの操作を行うことができます。Javaでデータベースを扱う際に必要となるクラスと考えて下さい。
 データベースには様々な種類が存在し機能も仕様も異なるため、個々のデータベースに対応したプログラムを作成するのは大変な労力になります。そのような問題を解決するために用意されたのがJDBCです。JDBCはデータベースごとの仕様の差を吸収するため、データベースごとの差を意識せずに操作することができます。
 なお、JDBCは、WindowsのODBC(Open Database Connectivity)をベースとして構築されたため、「Java Database Connectivity」を略して名付けられたと考えられています。

1.1.1 JDBCとJDBCドライバの位置づけ

 JDBC を利用したJavaプログラムとデータベースの連携は、以下の4つから構成されています。

 1) プログラム開発者が作成するJavaプログラム
 2) Javaで提供されるJDBC(java.sqlパッケージ)
 3) データベース・ベンダが提供するJDBCドライバ
 4) MariaDBなどのデータベース

 「java.sqlパッケージ」はJavaプログラムとJDBCドライバの間に位置するもので、その役割は、利用可能なJDBCドライバを管理し、適切なJDBCドライバを用いてデータベースに接続することです。
 「JDBCドライバ」は実際にデータベースに接続し、データベースの操作を実行する役目を持っています。データベースごとに別個に提供されているため、利用するデータベースに応じて適切なドライバを追加しておく必要があります。

図 1.1.1 JDBCとJDBCドライバの位置づけ

1.1.2 JDBCドライバの種類

 JDBCを使って、特定のデータベースに接続するためには、そのデータベース専用のドライバが必要になります。数多くのデータベース・ベンダやミドルウェア・ベンダが、さまざまな JDBCドライバを提供していますが、その種類は実装方法によって、次の4つのタイプに分けられます。

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


② ネイティブ・ブリッジ・ドライバ
 JDBC APIの呼び出しをDBMS固有のクライアントAPI呼び出しに変換するブリッジコンポーネントです。DBMSベンダーが固有に持つデータベースアクセスのためのミドルウェアを利用して、データベースへ接続するため、データベース接続に必要なデータベース固有のミドルウェアが必要になります。


③ ネット・プロトコル・ドライバ
 データベースとクライアントとの間に中継サーバーを介してデータベースにアクセスします。JDBCドライバは、データベースに依存しない通信方式を用いて中継サーバーと接続し、中間サーバーはデータベース固有のミドルウエアを利用してデータベースへ接続します。中継サーバーが必要になるため、システムの構成が複雑になります。


④ ネイティブ・プロトコル・ドライバ
 データベース固有のミドルウエア部分をすべて、JDBCドライバ内部に実装し、JDBCが直接データベースへ接続します。JDBCドライバ内部にデータベース固有のミドルウエア部分を実装しているため、システムの構成をシンプルにすることができますが、ドライバのサイズは大きくなってしまいます。


 本講座ではデータベースに「MariaDB」を利用します。MariaDBは④のネイティブ・プロトコル・ドライバに属する「Connector/J」と呼ばれるJDBCドライバを追加する必要がありますが、この追加方法については1.2節で学習していきます。


NEXT>> 1.2 JDBCドライバの追加方法