それでは、DoltengのScaffold機能を利用して、自動的にDBのテーブルの参照・登録・更新画面を作成しましょう。
Doltengで作られたプロジェクトには、デフォルトで「H2データベース」のデータが入っています。データの中には、「EMP」というテーブルと「DEPT」というテーブルがすでに登録されているので、これを利用して作成してみます。
まずは、DbLauncherプラグインでDBを起動します。SAStrutsプロジェクトを右クリックし、「H2」から[H2サーバの開始]をクリックします。これで、DBサーバが起動しました(なお、データはsrc/main/resources/dataから参照されています)。
では、Scaffold機能を試してみましょう。Eclipseの[メニュー]→[ウィンドウ]→[ビューの表示]→[その他...]を選択し、[Dolteng]の中にある[データベース・ビュー]を選択します。
表示された[データベース・ビュー]の中の対象のプロジェクトをクリックして「jdbc.dicon」を選択し、表示された「PUBLIC」を選択(表示が出ない場合、DBが起動していない可能性がある)します。すると、DBのテーブルが表示されます。ここでは、「DEPT」と「EMP」が表示されます。
ここで「DEPT」を右クリックし、[Scaffold アプリケーションの生成]を選択してください。
ダイアログはそのままで[OK]をクリックします。すると、.javaファイルや.jspファイルなどが作成されます。
「【ルートパッケージ名】.action」のパッケージに「DeptAction」クラスがあります。DeptActionクラスを右クリックし、[SAStrutsのサーバで表示]をクリックします。
すると、DEPTテーブルの一覧が表示されます。データの参照・登録・更新ができるので、試してみてください。
以上で作成が終了しました。EMPテーブルでも同様に作成できます。非常にお手軽にDBの追加・更新・参照のページができてしまいました。
ここで、Scaffoldについて少し言及しておきます。Scaffoldについては4つのJSPに対し、1つのActionクラスでロジックを回しています。業務システムに組み込む場合、1つのActionクラスで業務を作り込むと、ソースコードが長くなり、どの画面でどの値を参照するのか分かりにくくなることがあります。
業務の煩雑さなどに合わせ一覧機能、更新機能、作成機能など別にActionクラスを作った方がよいことがあるので、Scaffoldで作られたものはテンプレートとして考え、業務に合わせクラスを構成してください。
今回は主にDoltengを利用してのSAStrutsのプロジェクトの作成やScaffold機能をメインに紹介しました。手軽にプロジェクトを作成でき、手軽に参照・登録・更新画面ができることが、お分かりいただけたかと思います。
今回、ソースコードに追加を加えてもWebアプリは再起動しませんでした。Seasar 2.4の機能では、動作させたままソースコードを書き進めていくことができ、その結果を即座に確認できます。これはSeasarの「HOT deploy」という機能で、冒頭で紹介した「SMART deploy」機能の1つです。
ソースコードをちょっと修正してWebアプリを再起動していると、わずかであっても大切な“時間”が失われるとともに、開発者の集中力やモチベーションを奪っていたと思います。そして、何もできない“再起動中の時間”は、1回1回ではほんのわずかであっても、積み上がれば膨大な時間になっていることでしょう。
HOT deployは、これらをなくすことができるため、開発者にストレスのない開発を進めることができます。この機能については、後の連載で詳しく説明します。
また、画面を追加しましたが、Strutsアプリ開発に必要なstruts-config.xmlに触ることもなく画面表示ができました。これらの設定は、Actionクラスのアノテーションで実現しています。今後バリデーション(入力チェック・検証)の設定も行いますが、設定ファイルを触ることはよほどのことがない限りありません(新規バリデーションルールの追加など)。
SAStrutsを使うと、Stutrs開発者をXMLの設定ファイル地獄から解放してくれるのです!
次回は、Doltengで作成されたSAStrutsプロジェクトの内容と構成を具体的に見ていきます。Strutsアプリケーション開発で面倒だった設定ファイルがすべてJavaのソースコードの中で完結するその快適さを感じ取ることができると思います。
なお、本連載ではDIやAOPについてはなるべく説明せず、SAStrutsなどのソフトウェアの魅力を解説していきます。DIやAOPを理解していない人にも分かるように解説していくつもりですが、DIやAOPを便利にこなすSeasar 2自体に興味がある読者は、連載「Seasar Projectの全貌を探る」を参照してください。
所属:
株式会社パワーエッジ
AD事業部(Application Development事業部)
新田 智啓(しんでん ともひろ)
SAStrutsコミッタ
Seasarプロダクトのsandboxで新たにS2Csvのプロダクトを公開。業務で汎用的に使えるように更新中。
Copyright © ITmedia, Inc. All Rights Reserved.