サービス変更
ListServiceクラスにテスト用のメソッドを追加します。次の色が変わっている行の修正、追加を行ってください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
package com.example.demo; import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class ListService { private ItemDao[] item; public ItemDao[] getItem() { return item; } public void setItem(ItemDao[] item) { this.item = item; } private ItemDao itemdao; private ItemRepository itemrepository; public ListService() { } @Autowired ListService(ItemDao itemdao,ItemRepository itemrepository){ this.itemdao = itemdao; this.itemrepository = itemrepository; } public void all() { item = itemdao.findAllItem(); } public void test() { Item itm = new Item(); /*データ追加*/ itm.setName("TEST"); itm.setKind(1); itm.setPrice(777); itemrepository.save(itm); /*データー読み込み*/ Optional<Item> data=itemrepository.findById(24); //商品一覧の適当なIDを設定してください。 itm = data.get(); /*データー更新*/ itm.setPrice(999);//上記で読み込んだIDの価格変更 itemrepository.save(itm); /*データ削除*/ itemrepository.deleteById(40); //商品一覧の適当なIDを設定してください。 } } |
21行目、27行目、29行目でリポジトリをインスタンス化しています。37行目からのメソッドtestでテーブルitemに対して追加、読み込み、更新、削除を行っています。
追加
追加するには40行目~42行目のようにエンティティクラスに追加するデーターを設定します。しかしIDに関しては自動採番になっているのでここでは設定しません。
38 39 40 41 42 |
Item itm = new Item(); /*データ追加*/ itm.setName("TEST"); itm.setKind(1); itm.setPrice(777); |
43行目でリポジトリitemrepositoryのsaveメソッドで追加を行っています。
43 |
itemrepository.save(itm); |
読み込み
46行目でfindByIdメソッドを利用してID24のデータを読み込んでいます。戻り値はOptional型で返ってきますが、今回はnull値判定は省略し、値を47行目でエンティティitemに設定しています。※IDの番号は商品一覧から適当なIDを選んでください。
46 47 |
Optional<Item> data=itemrepository.findById(24); //商品一覧の適当なIDを設定してください。 itm = data.get(); |
更新
エンティティitemに読み込んだID24のデータが設定されています。価格を999に変更するため50行目でエンティティの価格に999を設定しています。そして60行目でsaveメソッドで更新を行っています。
50 51 |
itm.setPrice(999);//上記で読み込んだIDの価格変更 itemrepository.save(itm); |
削除
54行目でdeleteByIdメソッドを利用してID54を削除しています。※IDの番号は商品一覧から適当なIDを選んでください。
54 |
itemrepository.deleteById(40); //商品一覧の適当なIDを設定してください。 |
コントローラー変更
作成したメソッドをコントローラーから呼び出します。次のようにListControllerの23行目に命令を追加してください。
21 22 23 24 25 26 27 |
@GetMapping("/") public String form(Model model) { listservice.test(); listservice.all(); model.addAttribute("service", listservice); return "index"; } |
プログラムを再実行します。もしプログラムが実行中なら停止して再実行してください(参考:補足 プログラムが動かない)
ブラウザからURLを入力して一覧表示の変化を確認してください。