From e3b751c8ed7d488e50c79c85bfadb14f56b3c35a Mon Sep 17 00:00:00 2001 From: Hiroshi Igaki Date: Tue, 25 Feb 2020 09:49:17 +0900 Subject: [PATCH] sample4-4 --- Readme.md | 25 ++++++++++++++++- .../controller/Sample4Controller.java | 16 +++++++++++ .../springbootsamples/model/FruitsMapper.java | 10 +++++++ src/main/resources/templates/sample44.html | 27 +++++++++++++++++++ 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/templates/sample44.html diff --git a/Readme.md b/Readme.md index b6f0a7c..a6e6840 100644 --- a/Readme.md +++ b/Readme.md @@ -316,6 +316,7 @@ false - FruitsMapper.java - INSERT文 - Sample4Controller.java +- sample43.html ### 関連する機能 - @GetMapping @@ -354,10 +355,32 @@ spring.datasource.username=sa spring.datasource.password= ``` ## [Sample4-4] DBから複数の値をArrayListで取得し,htmlで表示するサンプル +### 参考 +- https://qiita.com/NagaokaKenichi/items/c6d1b76090ef5ef39482#%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E3%83%AB%E3%83%BC%E3%83%97 + - タイムリーフにおける繰り返し処理やステータス変数(stat)について +### 関連するファイル +- 実装: +- Sample4Controller.java +- FruitsMapper.java +- sample44.html +### 関連する機能 +- @Select +- @GetMapping +- Mapperを利用したFruitsオブジェクトのArrayList取得 + +### 動作確認 +- http://localhost:8000/sample43 にアクセスし,果物を追加で登録する +- http://localhost:8000/sample44 にアクセスし,下記のようにブラウザにFruitsのリストが表示されればOK +``` +index:0 id:1 さがほのか 10 5.8 いちご false +index:1 id:2 レモン 100 0.0 false +``` +- 最初のindexはステータス変数(stat.index)の値.他のステータス変数については参考資料参照. # Samples ### 参考 - +- https://qiita.com/NagaokaKenichi/items/c6d1b76090ef5ef39482#%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E3%83%AB%E3%83%BC%E3%83%97 + - タイムリーフにおける繰り返し処理やステータス変数(stat)について ### 関連するファイル ### 関連する機能 diff --git a/src/main/java/jp/ac/igakilab/springbootsamples/controller/Sample4Controller.java b/src/main/java/jp/ac/igakilab/springbootsamples/controller/Sample4Controller.java index 9ada4f5..807d250 100644 --- a/src/main/java/jp/ac/igakilab/springbootsamples/controller/Sample4Controller.java +++ b/src/main/java/jp/ac/igakilab/springbootsamples/controller/Sample4Controller.java @@ -1,5 +1,7 @@ package jp.ac.igakilab.springbootsamples.controller; +import java.util.ArrayList; + import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.ModelMap; @@ -77,4 +79,18 @@ public String sample43PostFruits(@ModelAttribute("fruit") Fruits fruit) { return "sample43.html"; } + + /** + * + * @param model htmlで表示したい果物のリストを格納するmapオブジェクト + * @return HTMLのviewを返す + */ + @GetMapping("sample44") + public String sample44GetFruitsList(ModelMap model) { + // すべての果物のArrayListを取得し,modelに格納する + ArrayList fruitsList = this.fruitsMapper.selectAllFruits(); + model.addAttribute("fruits", fruitsList); + return "sample44.html"; + + } } diff --git a/src/main/java/jp/ac/igakilab/springbootsamples/model/FruitsMapper.java b/src/main/java/jp/ac/igakilab/springbootsamples/model/FruitsMapper.java index 1ee4389..9f30bde 100644 --- a/src/main/java/jp/ac/igakilab/springbootsamples/model/FruitsMapper.java +++ b/src/main/java/jp/ac/igakilab/springbootsamples/model/FruitsMapper.java @@ -1,5 +1,7 @@ package jp.ac.igakilab.springbootsamples.model; +import java.util.ArrayList; + import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Options; @@ -30,4 +32,12 @@ public interface FruitsMapper { @Insert("INSERT INTO fruits (name,num,weight,details,sent) VALUES (#{name}, #{num}, #{weight}, #{details}, #{sent})") @Options(useGeneratedKeys = true, keyProperty = "id") void insert(Fruits fruit); + + /** + * fruitsテーブルにある全ての果物のリストを返す.テーブルのフィールドとFruitsクラスのフィールドが同一であれば,個別にフィールド名を指定しなくとも自動的に変換してくれる + * + * @return 複数のFruitsオブジェクトが格納されたArrayList + */ + @Select("SELECT * FROM fruits") + ArrayList selectAllFruits(); } diff --git a/src/main/resources/templates/sample44.html b/src/main/resources/templates/sample44.html new file mode 100644 index 0000000..67e4a04 --- /dev/null +++ b/src/main/resources/templates/sample44.html @@ -0,0 +1,27 @@ + + + + + + Fruits + + + +

Hello Fruits

+ + + +
+ + + + + + + + + +
+ + +