18 Apr 2017

1. Spring JDBC による書籍テーブル更新

1-1. 実習テーマ

  1. 書籍登録フォーム画面をエセでなくちゃんと作成する
  2. Spring JDBC を使用して書籍情報登録処理を実装する
  3. 書籍情報登録結果を画面に表示する

step05_image

1-2.今回やること および 学習ポイント

  1. 書籍登録フォーム画面をエセでなくちゃんと作成する
    • やること
      • 書籍登録フォームコントロールクラスの実装
      • 書籍登録フォームJSPの実装
    • 学習ポイント
      • Spring カスタムタグを学習する
      • フォーム入力値をコントローラで取得する方法を習得する
  2. Spring JDBC を使用して書籍情報登録処理を実装する
    • やること
      • 書籍登録Daoクラスの実装
      • 書籍登録サービスクラスの実装
      • 書籍登録コントロールクラスの実装
    • 学習ポイント
      • データベース登録・更新処理の実装方法を把握する
      • データ登録SQLテンプレートの設定方法
  3. 書籍情報登録結果を画面に表示する
    • やること
      • 登録処理を表示する画面コントロールクラスを実装する
      • 同様のJSPを作成する
    • 学習ポイント
      • 書籍登録処理結果の表示(とりあえず正常系のみ。異常系はこの後)

2. 技術解説 - フォームから入力データを取得する - Spring MVC

2-1. Spring MVC によるデータ登録の流れ

mvc-logical1

2-2. Spring Form Tag を使用した入力フォーム

2-3. フォームで入力されたデータを Controller で受け取る

2-4. Controller メソッドの引数について

3. 技術解説 - Spring JDBC を使用したデータ更新処理

3-1. Spring JDBC によるデータベース更新の流れ

3-2. Spring JDBC を使用したDB更新プログランミング

3-2-1. プレースホルダでパラメータを指定するサンプル

  1. INSERT 文

     jdbcTemplate.update("INSERT INTO book (id, isbn, name) VALUES (?, ?, ?)",
                   book.getId(), book.getIsdn(), book.getName());
    
  2. UPDATE 文

     jdbcTemplate.update("UPDATE book isbn = ?, name = ? WHERE id = ?",
                   book.getIsdn(), book.getName(), book.getId());
    
  3. DELETE 文

     jdbcTemplate.update("DELETE FROM book WHERE id = ?", book.getId());
    

3-2-2. NamedParameterJdbcTemplate を使用してパラメータを指定するサンプル

  1. INSERT 文

     MapSqlParameterSource pmap = new MapSqlParameterSource();
     pmap.addValue("ID", book.getId());
     pmap.addValue("ISBN", book.getIsbn());
     pmap.addValue("NAME", book.getName());
    
     namedJdbcTemplate.update(
         "INSERT INTO book (id, isbn, name) VALUES (:ID, :ISBN, :NAME)", pmap);
    
  2. UPDATE 文

     MapSqlParameterSource pmap = new MapSqlParameterSource();
     pmap.addValue("ID", book.getId());
     pmap.addValue("ISBN", book.getIsbn());
     pmap.addValue("NAME", book.getName());
    
     namedJdbcTemplate.update(
         "UPDATE book isbn = :ISBN, name = :NAME WHERE id = :ID", pmap);
    
  3. DELETE 文

     MapSqlParameterSource pmap = new MapSqlParameterSource();
     pmap.addValue("ID", book.getId());
    
     namedJdbcTemplate.update("DELETE FROM book WHERE id = :ID", pmap);
    

4. ハンズオン実習

STEP05 ハンズオン

STEP05 実装イメージ - 処理シーケンス

step05-flow1

STEP05 実装イメージ - Spring JDBC によるデータ登録・更新処理

step05-flow2

次のステップ

次のステップは「 STEP06 - 日本語文字化け対策と Validation の実装 」です。だいぶ進んできました!