
オープンソースTERASOLUNAで作るWebアプリ(3)
iBATISのORMとSpringのAOPを活用したDBアクセス
株式会社NTTデータ 技術開発本部 ソフトウェア工学推進センタ
正野 勇嗣
2008/12/24
| 今回の主な内容 ・HSQLDBへユーザ情報を登録/参照するサンプル ・コネクションを意識しないDBアクセス ・DBへデータを追加するサンプルWebアプリの実装 ・Spring AOPを用いたトランザクション管理 ・作成したWebアプリをTomcatで動かすと…… ・フレームワークに“お任せ”しちゃおう! |
連載第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の更新/参照処理があります。
![]() |
| 図1 DAOを利用した更新/参照処理 |
■ TERASOLUNAフレームワークの主要なファイル
TERASOLUNAフレームワークを構成する主要なファイルの一覧は、以下のとおりです。連載題2回に掲載した表に「SQL設定ファイル」「DAO入出力クラス」を追加したものです。それぞれのファイルの役割については、実際にサンプルアプリケーションを作成しながら説明していきたいと思います。
| 表1 TERASOLUNAフレームワークの主要なファイル一覧(【】は依存するフレームワーク、再掲して一部情報追加) | |||||||||||||||||||||||||||||||||
|
■ DBのテーブルの仕様
DBのテーブルの仕様は下記です。画面から入力されたデータを格納し、また格納されたデータを参照します。
| 表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の設定は下記のとおりです。
| 表3 入力パラメータと値 | ||||||||||||
|
DBの接続後、下記のように表示されることを確認します。
![]() |
| 図2 HSQL Database Managerの画面 |
HSQL Database Managerの画面でUSER_LISTテーブルを作成します。下記のSQLを入力し、Executeボタンを押下します。メニューの[View]→[Refresh Tree]を実行し、USER_LISTテーブルが追加されていることを確認します。
| リスト1 USER_LISTテーブル作成SQL | |
|
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に下記のとおり記述してください。
| リスト2 context.xml(HSQLDBのデータソース接続設定) | |
|
それでは、次ページ以降で実際にTERASOLUNAフレームワークを利用したサンプルWebアプリケーションを作っていきましょう。
| Index | ||||||||
|
||||||||
オープンソースTERASOLUNAで作るWebアプリ バックナンバー 連載インデックスへ»
- 第1回 Strutsの諸問題を解決するWebフレームワークとは?
- 第2回 Hello World!で理解する、Webアプリ開発の分業化
- 第3回 iBATISのORMとSpringのAOPを活用したDBアクセス
- 第4回 TERASOLUNAのタグで検索結果ページリンクを簡単に
- 最終回 TERASOLUNAのセキュリティ機能でWebアプリを強化
| Java Solution全記事一覧 |
TechTargetジャパン
- 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ - 新キャラ登場!スクラムやるならRedmineとALMinium (2011/12/26)
「黒板を“かんばん”にしてたら先生に怒られた(T_T)」「管理はPC内でやればいいのよ」「承知しました」
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


