Home > Documentation > 9. サンプル・アプリケーション > 9.b. データベース接続の簡単なサンプル・アプリケーション |
この文章は Apache Geronimo アプリケーション・サーバーの持つ JDBC 機能を解説します。JDBC 機能のデモンストレーションでは、JSP、サーブレットによりウェブ関連の機能や組み込みデータベースの Derby を扱う単純な Inventory アプリケーションを利用します.
Inventory アプリケーションはデータベースへの接続方法にサーバー・プロバイダー・インターフェース (SPI) を利用します。この方法では、アプリケーションはデータベースとの接続確立のために JDBC データソース・インターフェースを利用します。これが J2EE アプリケーションの接続方法としてふさわしいのは、以下のいくつかの理由によります。
この文章を読み終えると、Geronimo の JDBC 機能、たとえばデータベース・プールの定義やデータソースを使ってのデータベース接続などの機能を最大限活用することができるようになるでしょう。
この文章は以下のセクションで構成されています。
アプリケーション・サーバーへの JDBC の実装は、アプリケーション・サーバーごとに異なります。以下の表は Apache Geronimo の JDBC 機能一覧です。
Feature | Description |
---|---|
JDBC access | Geronimo は JDBC を直接統合していませんが、総括的な J2CA フレームワークを通しての接続をサポートしています。TranQL プロジェクトは様々なデータベース用 J2CA アダプターです。 |
JCA implementation | Geronimo は JCA 1.5 仕様をサポートしています。これは JCA 1.0 仕様と下位互換です。 |
Data sources supported | TranQL は各種データソースの総括的ラッパーです。 |
Data source failover | TranQL は特定のデータベース (Apache Derby、Oracle、DB2 を含みます) 向けに特化されたドライバーを持っていますので、それらドライバーの拡張機能と密接に統合されます。 |
XA support | XA トランザクション、ローカル・トランザクション、トランザクション無しをサポートしています。 |
Connection Manager Configurability | J2CA フレームワークは異なるコネクション・フレームワークの組み込みを可能にするインターセプターを持ちます。 |
JTA implementation | トランザクションのサポートは Geronimo Specific Transaction Managing フレームワーク と HOWL により与えられます。 |
Connection pooling and management | カスタムの Geronimo コードと TranQL はコネクション・プーリングと管理に利用されます。 |
Legacy driver support | Geronimo JDBC の TranQL−コネクター を通じて Geronimo のサポートする JDBC 3.0 と 2.1 の JCA ラッパーが与えられます。 |
この文章にある Inventory アプリケーションは、この手のアプリケーションの利用場面のうち、基本的な3つについてのみサポートします。
Inventory ウェブ・アプリケーションは以下のページを持ちます。
次の図はアプリケーションのフロー図です。
アプリケーションの Welcome ページは現在の各アイテムの在庫数を表示します。Welcome ページを通してユーザはアイテムの追加、物の入荷、または物の出荷ページへ遷移できます。それらの処理が成功すると、在庫情報が更新された Welcome ページにリダイレクトされます。アイテムの追加ページではアイテムの在庫数を定義することができますので、在庫数0としてアイテム情報を保持することができます。物の入荷および出荷ページはそれぞれアプリケーションの入荷と出荷処理の役割をもちます。
Inventory アプリケーションは以下のパッケージとクラスを含みます。
ウェブ・アプリケーションのファイルは以下のリストのとおりです。
geronimo-web.xml と web.xml ファイルによって、アプリケーションはデータソースを定義します。geronimo-web.xml は EAR ファイルに含まれ、データベース・プールへのリンクを持ちます。
以下に Inventory アプリケーションの web.xml を示します。データソースを作成する際に利用される geronimo-web.xml と同じ名前を利用しています。
geronimo-application.xml には、アプリケーションにデプロイする必要のあるデータベース・プールがあることを示します。データベース・プールは InventoryPool.xml に定義されています。また、ドライバーとして tranql-connector-ra-3.3.rar ファイルをデプロイする必要があることが記述されています。これら2つのファイルは生成された EAR ファイル内の最上位階層に置きます。
次の重要なアプリケーションの記述はソースコードから定義されたデータソースへ接続するものです。これは DBManager クラスとして扱われます。
このサンプル・データベースは組み込みの Derby データベースを利用しています。サンプル・データベースの名前は InventoryDB で、2つの表を持ちます。ITEM 表と ITEM_MASTER 表です。それぞれの表の列は以下に記述します。
Table Name | Fields |
---|---|
ITEM | ITEM_ID (PRIMARY KEY) |
ITEM_MASTER | ITEM_ID (PRIMARY KEY) |
ITEM 表は ITEM_MASTER 表の各アイテムの在庫数量を保持します。
nventory サンプル・アプリケーションの開発、ビルドは次のツールを利用しています。
Apache Derby は Apache DB サブ・プロジェクトであり、Java で実装されたリレーショナル・データベースです。サイズが小さく、Java に基づくソリューションに簡単に組み込めるものです。組み込みフレームワークに加え、Derby は Derby ネットワーク・サーバを利用することで、よくあるクライアント/サーバ・フレームワークもサポートします。
http://db.apache.org/derby/index.html
Maven はエンタープライズ Java プロジェクト向けの有名なオープンソースのビルド・ツールです。 ビルド作業の負荷を軽減できるように設計されました。Maven では Ant や他の伝統的な make ファイルなどで利用されるタスク・ベースの手法ではなく、宣言的手法を利用して、プロジェクトの構成や内容が定義されます。このことにより、企業全体で開 発標準を適用することや、ビルド用スクリプトの記述やメンテナンスに必要な時間を削ることの助けとなります。宣言的で、ライフサイクルに基づく手法を使っ ていた Maven 1 は、伝統的なビルド方法よりも、多くの人にとって、根本的な発展となり、さらに Maven 2 はこの点を高めました。Maven 2 は次の URL からダウンロードできます。
http://maven.apache.org
以下のリンクから Inventory アプリケーションをダウンロードしてください。
Inventory
ファイルを解凍すると、inventory ディレクトリーが作られます。
SVN からサンプルのソースコードをチェックアウトすることができます。
svn checkout http://svn.apache.org/repos/asf/geronimo/samples/trunk/samples/inventory
アプリケーションの構成は、データベースの作成とデータベースへ接続するコネクション・プールの定義を含んでいます。
Apache Geronimo サーバーを始動した後、 Geronimo コンソールへログインし、以下の手順により InventoryDB を作成してください。
Inventory アプリケーションはソースコードからのビルドに利用できる pom.xml スクリプトが含まれます。コマンド・プロンプトを利用して inventory ディレクトリーへ移動し、mvn install コマンドを入力するとビルドされます。inventory フォルダーの下に inventory-ear-2.0-SNAPSHOT.ear が作られます。これで Geronimo アプリケーション・サーバーへ Inventory アプリケーションをデプロイする準備ができました。
Geronimo Console の利用によって、サンプルアプリケーションのデプロイはかなり簡単です。
サンプル・アプリケーションをテストするには、ブラウザーを開いて http://localhost:8080/inventory を入力してください。 Inventory アプリケーションの Welcome ページが表示され、そこには注目ボードがあります。
ユーザーは Welcome ページからアイテムの追加、物の入荷、物の出荷機能へ接続できます。
この文章では Geronimo アプリケーション・サーバーでの JDBC 機能の利用方法を示しました。説明にしたがってサンプル・アプリケーションを順々にビルド、デプロイ、テストすればこれらの機能がよく分かります。
この文章の注目点は、以下の通りです。
Bookmark this on Delicious Digg this | Privacy Policy - Copyright © 2003-2009, The Apache Software Foundation, Licensed under ASL 2.0. |