Tomcatと外部のプログラムを連携させよう!

2008年1月10日(木)
羽倉 敬

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リソースを設定する要 素、要素を追加する」「3.web.xmlに2で設定したJNDIリソースを参照する要素を追加する」「4.プログラム中でJDNIルックアップを使ってデータソースを取得する」となります。

今回は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:membership_listテーブル

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ドライバを利用することができます。

株式会社ビーブレイクシステムズ

千葉大学法経学部卒業。大学時代よりオープンソースに興味を持ち、オープンソース専業ベンダーのビーブレイク システムズに入社。現在に至る。また、現在は社内技術サークルの中心メンバーとして日々提案・啓蒙活動を行う。座右の銘は「自らが求めてつくらなければ、 自身が求めるものはできない」

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています