I-13-9. JDBCによるデータベースアクセス方法

Webアプリケーションではほぼ必須となるデータベースとの連携を実現する方式として、JDBCを用いたJavaアプリケーションとデータベースの接続方法を説明する。その基本的な概念、プログラミング方法、トランザクション処理などについて解説する。

【学習の要点】

* JDBCとは、Javaからデータベースを操作する時に使うAPIである。

* JDBCでは、クエリとしてSQL文を渡し、データベースからその結果が返ってくる。

* データベースを利用するには、JDBCドライバを用意してから接続し、用件が終わったら接続を閉じる。

図I-13-9. JDBCによるデータベースアクセスの概要

【解説】

1) JDBCとは

JDBCとは、Javaプログラムとデータベースを接続するためのAPIである。JDBCを使えば、SQL文をリレーショナルデータベースに送信することができる。

しかし、現実には各データベースによって必要とされるプロトコルは異なっている。これを解消するために、データベースごとにデータベースとJDBC API間の差異を吸収するJDBCドライバが必要になる。

2) JDBCドライバの種類

JDBCドライバにはその実装方法ごとに、大きく分けて4種類ある。

* JDBC-ODBCブリッジ・ドライバ

* ネイティブ・ブリッジ・ドライバ

* ネット・プロトコル・ドライバ

* ネイティブ・プロトコル・ドライバ

3) データベースを扱う手順

* DriverManagerクラスを利用し、getConnection()メソッドにデータベース接続情報を指定して、データベースに接続する。Connectionクラスのオブジェクトが生成される。

* ConnectionオブジェクトのcreateStatement()メソッドで、SQL文を扱うStatementクラスのオブジェクトを生成する。

* StatementオブジェクトのexecuteQuery()メソッドにSQL文を指定して、SQLを発行する。結果セットがResultSetクラスのオブジェクトに返される。

* Statementオブジェクト、Connectionオブジェクトをclose()メソッドでクローズする。

4) トランザクション処理について

トランザクションを適用することで、トランザクションの開始から終了までのすべてのデータ変更操作を、すべて反映(コミット)するか、すべて取り消し(ロールバック)することができ、トランザクション前後でのデータ整合性を確保できる。

JDBCでトランザクション管理をする場合は以下のような方法を用いる。

* トランザクションの開始

JDBCではデフォルトで自動コミットとなっているので、トランザクションを明示的に扱うには、ConnectionオブジェクトのsetAutoCommit()メソッドに「false」を指定して、自動コミットを解除する。トランザクションの開始は自動で行われる。

* コミット

Connectionオブジェクトのcommit()メソッドを実行する。

* ロールバック

Connectionオブジェクトのrollback()メソッドを実行する。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。