From d41e4dac7c00587adc611068012fcf931af69534 Mon Sep 17 00:00:00 2001 From: w-yuki Date: Thu, 24 Sep 2026 16:09:20 +0900 Subject: [PATCH] =?UTF-8?q?[add]=E6=96=B0=E8=A6=8F=E7=99=BB=E9=8C=B2?= =?UTF-8?q?=E7=94=BB=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BookInsertConfirmController.java | 12 +--- .../demo/controller/BookInsertController.java | 51 ++++++++++++-- .../com/example/demo/entity/BookInsert.java | 32 +++++++++ .../demo/repository/BookInsertRepository.java | 11 +++ .../demo/service/BookInsertService.java | 11 +++ .../demo/service/BookInsertServiceImpl.java | 33 +++++++++ src/main/resources/templates/bookInsert.html | 68 ++++++++++++++++++- .../templates/bookInsertConfirm.html | 21 +++++- 8 files changed, 219 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/example/demo/entity/BookInsert.java create mode 100644 src/main/java/com/example/demo/repository/BookInsertRepository.java create mode 100644 src/main/java/com/example/demo/service/BookInsertService.java create mode 100644 src/main/java/com/example/demo/service/BookInsertServiceImpl.java diff --git a/src/main/java/com/example/demo/controller/BookInsertConfirmController.java b/src/main/java/com/example/demo/controller/BookInsertConfirmController.java index d3e6cc1..447b97a 100644 --- a/src/main/java/com/example/demo/controller/BookInsertConfirmController.java +++ b/src/main/java/com/example/demo/controller/BookInsertConfirmController.java @@ -1,14 +1,6 @@ package com.example.demo.controller; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; +//@Controller + -@Controller -public class BookInsertConfirmController { - @GetMapping("/bookInsertConfirm") - public String bookInsertConfirm() { - return "bookInsertConfirm"; - - } -} diff --git a/src/main/java/com/example/demo/controller/BookInsertController.java b/src/main/java/com/example/demo/controller/BookInsertController.java index d066d30..4b0c613 100644 --- a/src/main/java/com/example/demo/controller/BookInsertController.java +++ b/src/main/java/com/example/demo/controller/BookInsertController.java @@ -1,13 +1,52 @@ package com.example.demo.controller; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import com.example.demo.entity.BookInsert; +import com.example.demo.repository.BookCategoryRepository; +import com.example.demo.service.BookInsertService; @Controller public class BookInsertController { - @GetMapping("bookInsert") - public String bookInsert() { - return "bookInsert"; - - } -} + +@Autowired +private BookInsertService bookInsertService; + +@Autowired +private BookCategoryRepository categoryRepository; + + @GetMapping("/bookInsert") + public String bookInsert(Model model) { + model.addAttribute("categoryList",categoryRepository.findAll()); + model.addAttribute("bookInsert",new BookInsert()); + return "bookInsert"; + } + + // 初期表示: 空のformを渡す(th:fieldの初期値が空になる) + + // 確認画面から戻る: POSTされた入力中の値がformに入ったまま入力画面へ + @PostMapping("/bookInsertConfirm") + public String bookInsertConfirm(BookInsert bookInsert,Model model) { + model.addAttribute("bookInsert",bookInsert); + return "bookInsertConfirm"; + } + + @PostMapping("/bookInsert") + public String bookInsertBack(BookInsert bookInsert,Model model) { + + model.addAttribute("categoryList",categoryRepository.findAll()); + + model.addAttribute("bookInsert",bookInsert); + return "bookInsert"; + } + + + + + } + + diff --git a/src/main/java/com/example/demo/entity/BookInsert.java b/src/main/java/com/example/demo/entity/BookInsert.java new file mode 100644 index 0000000..a94c3cd --- /dev/null +++ b/src/main/java/com/example/demo/entity/BookInsert.java @@ -0,0 +1,32 @@ +package com.example.demo.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +import lombok.Data; + +@Entity // このクラスがDBのテーブルに対応することを表す +@Data +public class BookInsert { + + @Id // 主キー + @GeneratedValue(strategy = GenerationType.IDENTITY) // 自動採番 + private Long Id; + + private String bookId; + private String title; + private Integer isbn; + private String author; + private String category; + private String subcategory; + private Integer publisher; + private Integer publicationDate; + private String location; + private String condition; + private String donor; + private String discription; + + +} diff --git a/src/main/java/com/example/demo/repository/BookInsertRepository.java b/src/main/java/com/example/demo/repository/BookInsertRepository.java new file mode 100644 index 0000000..16ab016 --- /dev/null +++ b/src/main/java/com/example/demo/repository/BookInsertRepository.java @@ -0,0 +1,11 @@ +package com.example.demo.repository; + + + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.BookInsert; + +public interface BookInsertRepository extends JpaRepository { + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/BookInsertService.java b/src/main/java/com/example/demo/service/BookInsertService.java new file mode 100644 index 0000000..f49fffb --- /dev/null +++ b/src/main/java/com/example/demo/service/BookInsertService.java @@ -0,0 +1,11 @@ +package com.example.demo.service; + +import java.util.List; + +import com.example.demo.entity.BookInsert; + +public interface BookInsertService { + String regist(BookInsert book); + + List findAll(); + } diff --git a/src/main/java/com/example/demo/service/BookInsertServiceImpl.java b/src/main/java/com/example/demo/service/BookInsertServiceImpl.java new file mode 100644 index 0000000..5c47923 --- /dev/null +++ b/src/main/java/com/example/demo/service/BookInsertServiceImpl.java @@ -0,0 +1,33 @@ + package com.example.demo.service; + + import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.example.demo.entity.BookInsert; +import com.example.demo.repository.BookInsertRepository; + + @Service + public class BookInsertServiceImpl implements BookInsertService { + + @Autowired + private BookInsertRepository bookInsertRepository; + + @Override + public String regist(BookInsert book) { + // DTO → エンティティへ詰め替えて保存 + bookInsertRepository.save(book); + book.setBookId("bk"+book.getId()); + bookInsertRepository.save(book); // 保存 + return "登録が完了しました"; + } + + @Override + public List findAll() { + return bookInsertRepository.findAll(); // 全件取得 + } + } + + // ※BookService インタフェースにも List findAll(); を追加すること + diff --git a/src/main/resources/templates/bookInsert.html b/src/main/resources/templates/bookInsert.html index 41ae8a2..c37b657 100644 --- a/src/main/resources/templates/bookInsert.html +++ b/src/main/resources/templates/bookInsert.html @@ -8,8 +8,74 @@

新規図書登録入力

-
+ +
+

+ + + +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ +
+ +

+ + + + + \ No newline at end of file diff --git a/src/main/resources/templates/bookInsertConfirm.html b/src/main/resources/templates/bookInsertConfirm.html index 95c84a3..0f7b6ab 100644 --- a/src/main/resources/templates/bookInsertConfirm.html +++ b/src/main/resources/templates/bookInsertConfirm.html @@ -9,9 +9,23 @@

登録内容確認

- - - + + + + + + + + + + + + + + + + +
@@ -52,6 +66,7 @@
+