Spring Boot DB連携

Spring BootのWEB画面上でデータ検索機能を追加してみた(ソースコード編)

今回も引き続き、Spring BootのWEB画面上でデータ検索機能を追加した実装について述べる。ここでは、具体的なサンプルプログラムのソースコードを共有する。

前提条件

下記記事を参照のこと。

Spring BootのWEB画面上でデータ検索機能を追加してみた(完成イメージと前提条件)今回は、Spring BootのWEB画面上でデータ検索機能を追加してみたので、そのサンプルプログラムを共有する。 検索機能を行う...

作成したサンプルプログラムの内容

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上図の赤枠は、前提条件に記載したソースコードと比較し、変更になったソースコードを示す。赤枠のソースコードについては今後記載する。

まず、検索用のFormオブジェクトは下記の通り。名前・生年月日(From,To)・性別の項目とプルダウンを設定している。

次に、データベースにアクセスするMapperクラスは以下の通り。全件検索するfindAllメソッドを、検索条件指定により検索するfindBySearchFormメソッドに変更している。

また、Mapperクラスに対応するXMLファイルは以下の通り。findBySearchFormメソッド内のifタグにより、条件分岐を利用した動的SQL文を生成している。

さらに、検索画面「search.html」の内容は以下の通り。

その他、検索用Formのチェック処理を行うメソッド「checkSearchForm」をユーティリティクラスに追加している。

さらに、コントローラクラスの内容は以下の通り。searchメソッドに、検索用Formのチェック処理・検索処理を追加している。

また、サービスクラスとその実装クラスは以下の通り。検索処理を呼び出すdemoFormListメソッドと、検索用Formのチェック処理を呼び出すcheckSearchFormメソッドを追加している。

さらに、検索用Formのエラーメッセージを下記プロパティファイルに追加している。

また、一覧画面から検索画面に戻れるよう、下記HTMLファイルのsubmitタグの内容を変更している。

また、完了画面に表示するボタン名を変更している。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-search-2/demo

要点まとめ

  • 検索機能を行うSQL文のような動的SQL文を生成するには、MyBatis提供のifタグによる条件分岐を利用すると便利である。