連載第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点の特徴があります。
Webアプリケーションを作成しながら、これらの特徴を理解していきましょう。
今回作成するサンプルWebアプリケーションの仕様は下記のとおりです。
連載第2回で作成したアプリケーションと比較して、画面周りには変更がありませんが、業務ロジック内にて、TERASOLUNAフレームワークのDAOを利用したDBの更新/参照処理があります。
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のテーブルの仕様は下記です。画面から入力されたデータを格納し、また格納されたデータを参照します。
| フィールド名 | データ型 | サイズ | 主キー |
|---|---|---|---|
| ID | VARCHAR | 50 | ○ |
| NAME | VARCHAR | 50 | × |
| 表2 USER_LISTテーブルの仕様 | |||
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プロジェクトは連載第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.