Tomcatと外部のプログラムを連携させよう!
Tomcatとデータベースの接続
今日では、処理されるデータの大半はリレーショナルデータベース管理システム(RDBMS)で管理されています。Webアプリケーションもその例外ではありません。
JavaにはJDBCというデータベース接続のためのAPIが用意されており、データベースの種別によらない共通のインターフェースを提供します。今回はこのJBDCを利用します。
JDBC 2.0からはデータソースという概念が入りました。これによりプロダクトごとに異なるJDBCドライバやURLなどの情報を設定ファイルに持ち、プログラ ム上では共通のデータソースオブジェクトから接続を取得できるようになっています。データソースの設定ファイルを書き換えることで、JDBCドライバや データベースを切り替えることが可能となり、共通のコードをさまざまな環境で使用することができるのです。
TomcatではJNDIルックアップという機能を利用して、JDBCをデータソースとして取得できます。また、Tomcatはデフォルトでデータベースプーリングが可能です。
今回解説に利用しているTomcat 5.5ではCATALINA_HOME/common/lib/の中のnaming-factory.jarというJARファイルに「Jakarta-Commons DBCP」「Jakarta-Commons Collections」「Jakarta-CommonsPool」といったDBCP用ライブラリが含まれています。これにより、Tomcat起動時に データベースへの物理接続のプールが形成され、高速でスケーラブルなWebアプリケーションを実現できます。
ではTomcatでデータソースを設定し利用する手順を解説していきましょう(サンプルデータベースにはMySQL 5.0を使用しています)。
データベースに接続するための手順
WebアプリケーションからRDBMSに接続するための手順は、「1.JDBCドライバの入手」「2.WebアプリケーションのコンテキストにJNDIリソースを設定する
今回はMySQL上のデータベースtest_dbに表1のようなmembership_listテーブルがあるものとして作業を進めていきます。MySQLのインストール方法については本連載では割愛いたします(MySQLに関する詳しい説明は「今からはじめるMySQL」を参照してください)。
id | name | age | tel |
---|---|---|---|
1 | 山田 | 23 | 090-1234-5678 |
2 | 佐藤 | 34 | 080-2222-2222 |
3 | 鈴木 | 45 | 070-3333-3333 |
1. JDBCドライバの入手
JDBCドライバはデータベースのベンダーやオープンソースプロジェクトから提供されています。今回はMySQLのサイト(http://dev.mysql.com/downloads/connector/j/) からJDBCドライバを入手しました。ダウンロードしてきた圧縮アーカイブを解凍すると「mysql-connector-java-5.1.5- bin.jar」というJARファイルが入っています。これをCATALINA_HOME/commom/lib/ディレクトリにコピーすることで、 TomcatからJDBCドライバを利用することができます。