SpringBootやってみる~DBアクセス(mybatis)編~ データ登録①


目的

自己学習向け・初心者向けメモ。
前回の SpringBootやってみる~DBアクセス(mybatis)編~ データ取得② のアプリケーションをベースとする

概要

完成図

【登録画面】

【登録確認画面】

【登録完了画面】

アプリケーションの実装

作成したプログラムの構成は以下の通り

赤枠で囲っているものは、前回のソースコードから追加・変更したもので本記事にて記載する(HTMLファイルはgit参照)

【DemoController.java】
TOP画面からユーザ検索・ユーザ登録系の画面への遷移の追加
Formの修正の反映

DemoController.java
    /**
     * Formオブジェクトを初期化して返却する
     * @return 検索用Formオブジェクト
     */
    @ModelAttribute("userForm")
    public UserForm clearUserForm(){
        return new UserForm();
    }

    /**
     * 初期表示画面に遷移する
     * @return 検索画面へのパス
     */
    @RequestMapping("/")
    public String index(Model model){
        UserForm userForm = new UserForm();
        userForm.setId(null);
        userForm.setName(null);
        userForm.setSex(null);
        model.addAttribute("userForm",userForm);
        return "top";
    }

    /**
     * 検索画面に遷移する
     * @return 検索画面へのパス
     */
    @RequestMapping("/search")
    public String search(){
        return "search";
    }

    /**
     * 登録画面に遷移する
     * @return 登録画面へのパス
     */
    @RequestMapping("/register")
    public String register(){
        return "register";
    }

    /**
     * 登録確認画面に遷移する
     * @return 登録画面へのパス
     */
    @RequestMapping("/confirm")
    public String confirm(){
        return "confirm";
    }

    /**
     * 検索処理を行い、一覧画面に遷移する
     * @param searchForm 検索用Formオブジェクト
     * @param model Modelオブジェクト
     * @param result バインド結果
     * @return 一覧画面へのパス
     */
    @RequestMapping("/search_result")
    public String searchResult(UserForm userForm, Model model, BindingResult result){
        //検索用Formオブジェクトのチェック処理
        //ユーザー情報リストを取得
        List<UserForm> demoFormList = demoService.demoFormList(userForm);
        //ユーザー情報リストを更新
        model.addAttribute("demoFormList", demoFormList);
        return "search_result";
    }

    /**
     * 確認画面に遷移する
     * @param demoForm Formオブジェクト
     * @param result バインド結果
     * @return 確認画面または入力画面へのパス
     */
    @PostMapping(value = "/confirm", params = "next")
    public String confirm(UserForm userForm, BindingResult result){
        //チェック処理を行い、画面遷移する
        return "confirm";
    }

    /**
     * 完了画面に遷移する
     * @param demoForm Formオブジェクト
     * @param result バインド結果
     * @return 完了画面
     */
    @PostMapping(value = "/complete", params = "next")
    public String send(UserForm userForm, BindingResult result){
        //追加処理を行う
        demoService.create(userForm);
        return "complete";
    }

【UserForm.java】
Formの共通化

【UserInfoMapper.java】
ユーザデータ登録・最大ID取得の追加

UserInfoMapper.java

    /**
     * ユーザーデータを追加する
     * @param userData ユーザーデータテーブル(user_data)の追加データ
     */
     List<UserInfo> createRegisterForm(UserInfo userInfo);

    /**
     * 最大値IDを取得する
     * @return 最大値ID
     */
    String findMaxId();

【DemoService.java】
ユーザデータの追加

DemoService.java
    /**
     * 引数のユーザーデータ追加
     * @param demoForm フォームオブジェクト
     */
    void create(UserForm userForm);

【DemoServiceImpl.java】
ユーザデータの追加

DemoServiceImpl.java
    @Override
    public void create(UserForm userForm){
        //追加処理を行うエンティティを生成
        UserInfo userInfo = getUserData(userForm);
        //追加処理
        userInfo.setId(String.valueOf(Integer.parseInt(mapper.findMaxId()) + 1));
        mapper.createRegisterForm(userInfo);
    }

    /**
     * UserInfoオブジェクトに引数のフォームの各値を設定する
     * @param userForm UserInfoオブジェクト
     * @return ユーザーデータ
     */
    private UserInfo getUserData(UserForm userForm){
        UserInfo userInfo = new UserInfo();
        userInfo.setName(userForm.getName());
        userInfo.setSex(userForm.getSex());
        return userInfo;
    }

ソースコードの詳細はいかに記載
GitHub

アプリケーションの実行

追加するユーザ情報を入力


登録したユーザを確認

次回

SpringBootやってみる~DBアクセス(mybatis)編~ データ登録②