Eclipseプラグイン「Dolteng」のScaffoldという自動生成機能やSeasar 2.4のHOT deploy機能を利用して、DBの参照・更新・削除ができるSAStrutsのWebアプリを作ります。Java初心者だけでなくStrutsに慣れた開発者も必見です
超俊敏にJavaのWebアプリケーションを作るための便利なツールを紹介する本連載も今回で最終回です。
前回の「EL式を拡張したSAStrutsタグ/ファンクションは超便利」では、SAStrutsを利用するうえでJSP記述に便利なSAStrutsのカスタムタグやファンクションについて解説しました。前回までで、SAStrutsをプレゼンテーション層、サービス層、パーシステンス層と分けたときにプレゼンテーション層の流れはすべて追ったことになります。
今回は、SAStrutsのサービスクラスと、そこで使われている「S2JDBC」についてお話ししたいと思います。この回でWeb画面からデータベース(以下、DB)までの業務用のWebアプリケーショに必要なすべての流れを完了します。これでSAStrutsを利用したWebアプリを作る方法の基本のすべて分かったことになると思います。
なお今回の記事でも連載第1回の『1分でWebアプリを作れるEclipseプラグイン「Dolteng」』で作成した環境を使用します。まだ読んでいない方は、第1回記事から順番に読むことをお勧めします。
連載開始の第1回からEclipseプラグインDoltengのバージョンが上がり、2009年3月現在のバージョンは0.36.0となっています。できることも少し増え、自動作成されるソースコードに少し変更があるかもしれませんが、Doltengは非常に便利なので最新バージョンもぜひ使ってみてください。
今回は、連載当初のバージョンの0.33.0のプロジェクトで作成されたもので解説しますが、0.36.0の新機能についても後述します。
S2JDBCはDBのアクセスとJavaオブジェクトの変換を行うO/Rマッピングのフレームワークです。「流れるようなインターフェイス」が採用されていて、SQLを知っている人ならば、Javaで書かれていても何をやっているかはっきり分かるようになっています。O/Rマッピングについて、詳細を知りたい読者は、以下の記事が参考になると思います。
またS2JDBCは、DB接続時のわずらわしいトランザクション管理が不要なのも特徴です。それでは、S2JDBCの具体的な使い方を解説していきたいと思います。
まずは、テーブルのデータがマッピングされるデータオブジェクトであるEntityクラスを定義します。Doltengで生成したDeptクラスは、このクラスがDeptテーブルと対応することを表すため、@Entityアノテーションが付加されています。デフォルトでは、「テーブル名=クラス名」となります。
次に、カラムに使用されるメンバ変数には@Columnアノテーションが付加されています。こちらも、デフォルトは「カラム名=変数名」となります。
S2JDBCのEntityクラスを使う場合、DBに保存する型として利用可能なものは、以下になります。
主キーになる項目には、@Idアノテーションを付加します。また、値が自動生成される項目(シーケンスなどで)@GeneratedValueアノテーションを付加します。
以上が、基本的なEntityのアノテーションの説明です。今回の開発手順で進めれば自動生成されてしまうため、ほとんど自分で書くことはありませんが、一通りの知識は持っておいた方がよいでしょう。
そのほかのアノテーションやデフォルト以外の設定方法もありますが、それらの設定方法やより詳しい利用法はS2JDBCの公式ページとメーリングリストを参照してください。
次ページでは、S2JDBCのSQLライクな「流れるようなインターフェイス」を紹介し、DB操作にtry/catch/finally文を必要としない、トランザクション管理について説明します。
Copyright © ITmedia, Inc. All Rights Reserved.