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節で学習していきます。