2015年4月22日水曜日

(2)Spring Boot で Web アプリケーションを開発:データベースアクセス

前回に続いて、Spring Boot を使って Web アプリケーションを開発します。今回はデータベースアクセス機能を実装します。

データベース設定
/src/main/java/com.itrane.spbootdemo.app.DbConfig.java を作成します: @EnableJpaRepositories の設定以外は「(1)SpringMVC+Thymelef+Bootstrap で実用アプリの開発」の DbConfig と同じです。

/src/main/java/com.itrane.spbootdemo.app.AppConfig.java を次のように修正します:

モデルの作成
データベースに登録するユーザーエンティティを作成します。
/src/main/java/com.itrane.spbootdemo.model.User.java : 検証機能をテストするために、name に @Length 注釈を設定します。

リポジトリとサービスを作成
上述のユーザーエンティティを操作するリポジトリとサービスを作成します。
/src/main/java/com.itrane.spbootdemo.repo.UserRepository.java: このデモで使用する最低限の機能を実装します。

/src/main/java/com.itrane.spbootdemo.service.UserService.java:( GitHub ソース )
/src/main/java/com.itrane.spbootdemo.service.UserServiceImpl.java:
コントローラの作成
ユーザーの一覧表示、新規作成、修正などの処理を行うコントローラを作成します。 /src/main/java/com.itrane.spbootdemo.controller.UserController.java: コントローラメソッドの説明:
  • userList():ユーザー一覧ビュー(views/userList.html)を表示します。
  • getUserPage():userList.html の dataTables から ajax 通信で送られた情報を元にテーブルに表示するユーザーデータをDB (user テーブル)から取得します。
  • createUser():メニューの保守/ユーザー登録を選択するか、userList.html の"追加"ボタンを押すとこのメソッドが実行され、ユーザー編集ビュー(views/userForm.html)を表示します。
  • editUser():ユーザー一覧(userList.html)の任意の行のの"編集"ボタンを押すとこのメソッドが実行され、渡された id のユーザーの編集ビュー(views/userForm.html)を表示します。
  • saveUser():ユーザー編集ビューで"保存"ボタンを押すとこのメソッドが実行されます。@Valid の付いた user はこのメソッドが呼ばれる前に入力値が検証されます。入力値が正しい場合(!resutl.hasError())は、UserService#save() により user を保存して、新規モードの場合はユーザー編集ビューを修正モードの場合はユーザー一覧ビューを表示します。エラーの場合は元の画面(ユーザー編集ビュー)へ戻ります。

ビューの作成
ユーザー一覧ビュー /src/main/resources/templates/views/userList.html:
上記ビューで使用する javascript  ファイルを作成します。
/src/main/resources/static/js/userTable.js:
ユーザー編集ビュー /src/main/resources/templates/views/userForm.html:
上記ビューで使用する javascript  ファイルを作成します。
/src/main/resources/static/js/userForm.js:( GitHub ソース )

ビューの追加に合わせて、mesages.properties ファイルも修正します。

実装結果を確認する
App.java を右クリックして、Run As  Java Application を選択してアプリケーションを起動します。アプリケーションを起動すると、app.properties で設定した開発時の ddl-genaration=drop-and-create-tables により、User エンティティに対応する user テーブルが作成されます。
続いて、メニューから保守/ユーザー一覧を選択してユーザー一覧ビューを表示します。このデモアプリでは user テーブルにデータが1件も無い場合はテスト用のデータを3件追加します。次に示すユーザー一覧ビューが表示されれば、UserRepository が正しく機能していることが確認できます。
(画面1)ユーザー一覧ビュー:

ユーザー一覧で2行目の編集ボタンをクリックして、ユーザー編集ビューを表示します。
(画面2)ユーザー編集ビュー/修正モード:

データを修正して保存ボタンを押すと、データが保存され、ユーザー一覧が表示されます。
(画面3)ユーザー一覧/user2 の氏名変更後:


上記画面で追加ボタンを押すか、メニューの保守/ユーザー登録を選択して、ユーザー編集ビューを表示します。
(画面4)ユーザー編集ビュー/新規登録:
上記画面で連続して、user4、user5 を追加して、ユーザー一覧画面を表示します。
(画面5)ユーザー一覧/2ユーザー追加後:
(画面6)ユーザー編集画面で入力チェックエラーの場合
まとめ
ビューや静的リソースを置く場所を除けば、Spring MVC で Web アプリを開発する場合と全く同じです。実際、大部分のコードは「(1)SpringMVC+Thymelef+Bootstrap で実用アプリの開発」で作成したコードをコピーして使用しました。

ソースコード:GitHub SpBootDemo_b2

0 件のコメント: