【第八回】DBからデータを取得する

Javaウェブアプリ開発

はじめに

DreamHanksの松下です。

前回はヴァリデーションチェックについて解説をしました。

今回は受け取ったリクエストパラメータがユーザ情報と一致しているか
を検証する方法を解説します。

連載記事まとめ

 

ビジネスロジックを作る

ビジネスロジックとはDB操作や計算をするソースコードです。
serviceクラスを設けてそこでメソッドを作り、コントローラから呼び出します。

 

コントローラとは切り分ける。
DB操作や計算はサービス(ビジネスロジック)に任せる

 

DB操作

受け取ったリクエストパラメータのpasswordを使って、そのpasswordと一致するDBのテーブルのレコードを取得します。
今回はSQL文を使わずにmybatisの機能だけ操作します。

 

MemberExample クラスはmybatisジェネレータでDBのテーブルそれぞれに自動生成されるものです。
こちらのクラスにシンプルなDB操作をするためのメソッドが定義されています

createCriteria()メソッドを使うことで、SQL文で言うWHERE句を簡単に作れます。

 

今回はpasswordと一致しているかどうかの判定なのでandPasswordEqualTo()メソッドを使います。

 

そのほかにも条件を繋げたい場合は下記のようにネスト(メソッドの入子)してください

 

サーブレットとしての役割

前回で解説したようにサーブレットとはWebページを動的にレスポンスするためのものです。

今回はpasswordがテーブルと一致した場合、次の画面。
一致しなかった場合、ログイン画面に差し戻すという風に動的にレスポンスを行います。

 

 

このようにif文を使い、サービスから取得したmemberがnullではないならば
次の画面へ遷移。nullならば、ログイン画面に差し戻すという風に動的にレスポンスを行います。

 

メッセージの出力方法

password不一致によりログイン画面に差し戻す場合に、その理由をメッセージとして画面に表示します。

 

model.addAttributeを使ってmessageという文字列に”メッセージ内容”をattributeします。

 

 

次にlogin.jsp内で${message}を記述しておいて、password不一致の場合
attributeされたものが、ログイン画面に差し戻された場合に表示されるようにします。

 

 

最後に

・DBからデータを取得
・結果によって動的にWebページをレスポンスする
・エラーメッセージの表示方法
の3点を解説しました。

次回は「勤務時間選択画面」表示の解説を行います。

お読みいただきありがとうございました。

 

 

 

コメント