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

今回はMySQL上のデータベースtest_dbに表1のようなmembership_listテーブルがあるものとして作業を進めていきます。MySQLのインストール方法については本連載では割愛いたします(MySQLに関する詳しい説明は「今からはじめるMySQL」を参照してください)。

idnameagetel
1山田23090-1234-5678
2佐藤34080-2222-2222
3鈴木45070-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ドライバを利用することができます。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30