連載第2回の「Hello World!で理解する、Webアプリ開発の分業化」では、TERASOLUNA Server Framework for Java Web版(以下、TERASOLUNAフレームワーク)を使って、Hello Worldを出力する簡単なアプリケーションを作成しました。
編集部注:「TERASOLUNA Server Framework for Java」を含むTERASOLUNA全体について詳しく知りたい読者は、特集「Java、.NET、Ajax開発の“銀の弾丸”オープンソース?」をご覧ください。
今回は、TERASOLUNAフレームワークを使ってデータベース(以下、DB)にアクセスするサンプルWebアプリケーションを作成します。TERASOLUNAフレームワークを使ったDBアクセスには下記の2点の特徴があります。
- TERASOLUNAのDAOを用いたDBアクセス
- Spring AOPを利用したトランザクション管理
- トランザクション管理はフレームワークにお任せ
Webアプリケーションを作成しながら、これらの特徴を理解していきましょう。
HSQLDBへユーザ情報を登録/参照するサンプル≫
今回作成するサンプルWebアプリケーションの仕様は下記のとおりです。
- USER_LISTテーブルへ1レコードを追加する
- 追加したレコードの情報を画面に表示させる
- DBアクセス時にエラーが発生した場合は業務ロジック単位でロールバックする
連載第2回で作成したアプリケーションと比較して、画面周りには変更がありませんが、業務ロジック内にて、TERASOLUNAフレームワークのDAOを利用したDBの更新/参照処理があります。
TERASOLUNAフレームワークの主要なファイル
TERASOLUNAフレームワークを構成する主要なファイルの一覧は、以下のとおりです。連載題2回に掲載した表に「SQL設定ファイル」「DAO入出力クラス」を追加したものです。それぞれのファイルの役割については、実際にサンプルアプリケーションを作成しながら説明していきたいと思います。
名称 | ファイル名 | 概要 |
---|---|---|
業務入出力ファイル 【TERASOLUNA】 |
blogic-io.xml | アクションフォームなどのプレゼンテーション層のオブジェクトと業務ロジックの入出力DTO(Data Transfer Object)間のマッピング情報を設定 |
Struts設定ファイル 【Struts】 |
struts-config.xml | Strutsの設定を行う。主に、遷移先パス情報を記述 |
Bean定義ファイル (アプリケーション全体) 【Spring Framework】 |
applicationContext.xml | オブジェクトと、オブジェクト間の依存性を定義するSpring Frameworkの設定ファイル。アプリケーション全体の設定に関係するオブジェクトを定義 |
Bean定義ファイル (業務個別) 【Spring Framework】 |
moduleContext.xml | オブジェクトと、オブジェクト間の依存性を定義するSpring Frameworkの設定ファイル。アクションや業務ロジックなど、業務個別のオブジェクトを定義 |
JSP 【サーブレット/JSP】 |
xxx.jsp | 動的な画面を生成 |
業務入出力クラス | Xxx.java(POJO) | 業務ロジックとアクション間で引き渡す値を保持するDTOクラス |
業務ロジッククラス 【TERASOLUNA】 |
XxxBLogic.java | 業務処理クラス。TERASOLUNAフレームワークが規定するBLogicインターフェイスを実装 |
SQL設定ファイル 【iBATIS】 |
sqlMap.xml | 業務プログラマが作成するSQL文を記述するファイル。このファイルに記述したSQL文は、TERASOLUNA DAOを利用して業務ロジックから実行できる |
DAO入出力クラス | Xxx.java(POJO) | 業務ロジックとDAO間で引き渡す値を保持するクラス |
web.xml(配備記述子) 【サーブレット/JSP】 |
web.xml | Webアプリケーション全体を設定 |
表1 TERASOLUNAフレームワークの主要なファイル一覧(【】は依存するフレームワーク、再掲して一部情報追加) |
DBのテーブルの仕様
DBのテーブルの仕様は下記です。画面から入力されたデータを格納し、また格納されたデータを参照します。
フィールド名 | データ型 | サイズ | 主キー |
---|---|---|---|
ID | VARCHAR | 50 | ○ |
NAME | VARCHAR | 50 | × |
表2 USER_LISTテーブルの仕様 |
接続するDBの起動と設定
DBとして、JavaでできたオープンソースのHSQLDBを利用します。TERASOLUNAフレームワークのダウンロードサイト「http://sourceforge.jp/projects/terasoluna/releases/」からterasoluna-server4jweb-tutorial_2.0.1.0.zipをダウンロードし、解凍します。tutorial-thinディレクトリの直下にhsqldb.zipがありますので解凍し、任意のディレクトリ(例えば、c:\)に配置してください。「c:\hsqldb\terasoluna\startDB.bat」を実行してDBを起動します。
続いて、正しく起動しているか確認します。「c:\hsqldb\terasoluna\startDBManager.bat」を実行します。HSQL Database Managerが起動し、connect画面が表示されるので、以下の表の入力パラメータに対応する値を入力します。DBの設定は下記のとおりです。
入力パラメータ | 値 |
---|---|
Type | HSQL Database Engine Server |
Driver | org.hsqldb.jdbcDriver |
URL | jdbc:hsqldb:hsql://localhost/terasoluna |
User | sa |
Password | なし |
表3 入力パラメータと値 |
DBの接続後、下記のように表示されることを確認します。
HSQL Database Managerの画面でUSER_LISTテーブルを作成します。下記のSQLを入力し、Executeボタンを押下します。メニューの[View]→[Refresh Tree]を実行し、USER_LISTテーブルが追加されていることを確認します。
create table user_list( ID varchar(50) primary key, NAME varchar(50) )
TomcatへHSQLDBのライブラリを追加します。「c:\hsqldb\lib\hsqldb.jar」を「【Tomcatのインストールディレクトリ】\common\lib」へ配置してください。
Eclipseプロジェクト内のDB接続設定
Eclipseプロジェクトは連載第2回で利用したEclipseプロジェクト(terasoluna-sample)を引き続き利用します。導入手順や、Eclipseプロジェクトの構成は連載第2回を参照してください。
HSQLDBに接続するためのデータソース接続設定はEclipseプロジェクト(terasoluna-sample)内の「webapps/META-INF/context.xmlに下記のとおり記述してください。
<Context> <Resource name="jdbc/TerasolunaSampleDataSource" type="javax.sql.DataSource" driverClassName="org.hsqldb.jdbcDriver" password="" maxIdle="2" maxWait="5000" username="sa" url="jdbc:hsqldb:hsql://127.0.0.1:9001/terasoluna" maxActive="4"/> </Context>
それでは、次ページ以降で実際にTERASOLUNAフレームワークを利用したサンプルWebアプリケーションを作っていきましょう。
Copyright © ITmedia, Inc. All Rights Reserved.