From d7e12cc4f1b2d096f7e5a27ddf0a677b998d7c41 Mon Sep 17 00:00:00 2001 From: s-tajihi <2026_04_00508@it-college.co.jp> Date: Fri, 25 Sep 2026 16:12:16 +0900 Subject: [PATCH] =?UTF-8?q?[edit]=20=E5=9B=B3=E6=9B=B8=E4=B8=80=E8=A6=A7?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E3=81=AE=E6=A4=9C=E7=B4=A2=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/BookController.java | 40 +++++++++++++++++-- .../com/example/demo/form/BookSearchForm.java | 10 +++++ .../demo/repository/BookRepository.java | 12 +++++- .../example/demo/service/BookServiceImpl.java | 20 +++------- src/main/resources/templates/book.html | 31 ++++++++++++-- 5 files changed, 90 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/example/demo/form/BookSearchForm.java diff --git a/src/main/java/com/example/demo/controller/BookController.java b/src/main/java/com/example/demo/controller/BookController.java index dba3968..1dc77b3 100644 --- a/src/main/java/com/example/demo/controller/BookController.java +++ b/src/main/java/com/example/demo/controller/BookController.java @@ -6,23 +6,55 @@ 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.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; import com.example.demo.entity.Book; +import com.example.demo.form.BookSearchForm; import com.example.demo.service.BookServiceImpl; @Controller public class BookController { @Autowired private BookServiceImpl bookService; - + + /* 一覧表示 */ @GetMapping("/book") public String book(Model model) { - + List aaa = bookService.findAll(); - + // DBから取得したデータをHTMLで扱えるようにする - model.addAttribute("book",bookService.findAll()); + model.addAttribute("book", bookService.findAll()); + + model.addAttribute("bookSearchForm", new BookSearchForm()); + return "book"; } + /* 検索処理 */ + @GetMapping("/searchBooks") + public String searchBooks(@ModelAttribute BookSearchForm bookSearchForm, + Model model) { + + model.addAttribute("book", bookService.findBooks(bookSearchForm.getKeyword())); + + model.addAttribute("bookSearchForm", bookSearchForm); + + return "book"; + + } + + /* クリア処理 */ + @PostMapping("/clearBookList") + public String clearBookList(Model model) { + + model.addAttribute("book", bookService.findAll()); + + model.addAttribute("bookSearchForm", new BookSearchForm()); + + // 一覧表示画面に戻る + return "/book"; + } + } diff --git a/src/main/java/com/example/demo/form/BookSearchForm.java b/src/main/java/com/example/demo/form/BookSearchForm.java new file mode 100644 index 0000000..a9e1f8d --- /dev/null +++ b/src/main/java/com/example/demo/form/BookSearchForm.java @@ -0,0 +1,10 @@ +package com.example.demo.form; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class BookSearchForm { + private String keyword; +} diff --git a/src/main/java/com/example/demo/repository/BookRepository.java b/src/main/java/com/example/demo/repository/BookRepository.java index f8d5774..b74e641 100644 --- a/src/main/java/com/example/demo/repository/BookRepository.java +++ b/src/main/java/com/example/demo/repository/BookRepository.java @@ -1,10 +1,20 @@ package com.example.demo.repository; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import com.example.demo.entity.Book; public interface BookRepository extends JpaRepository{ - + @Query(""" + SELECT b FROM Book b + WHERE b.title LIKE %:keyword% + OR b.publisher LIKE %:keyword% + OR b.author LIKE %:keyword% + """) + List searchBooks(@Param("keyword")String keyword); } diff --git a/src/main/java/com/example/demo/service/BookServiceImpl.java b/src/main/java/com/example/demo/service/BookServiceImpl.java index c12e07d..da7268a 100644 --- a/src/main/java/com/example/demo/service/BookServiceImpl.java +++ b/src/main/java/com/example/demo/service/BookServiceImpl.java @@ -1,6 +1,5 @@ package com.example.demo.service; - import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -10,26 +9,17 @@ import com.example.demo.entity.Book; import com.example.demo.repository.BookRepository; @Service -public class BookServiceImpl{ - +public class BookServiceImpl { + @Autowired private BookRepository bookRepository; - -// @Override -// public String booklist(com.example.demo.entity.Book book) { -// Book booklist = new Book(); -// booklist.setBookId(book.getBookId()); -// -// return null; -// } - - public List findAll() { return bookRepository.findAll(); } - - + public List findBooks(String keyword){ + return bookRepository.searchBooks(keyword); + } } diff --git a/src/main/resources/templates/book.html b/src/main/resources/templates/book.html index 199aabd..1a02ff4 100644 --- a/src/main/resources/templates/book.html +++ b/src/main/resources/templates/book.html @@ -12,6 +12,27 @@

社内図書一覧

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

※「タイトル」「出版社」「著者名」で検索

+ + +
@@ -68,7 +89,7 @@ 貸出 - + @@ -77,8 +98,12 @@ - - + + + +
+ 該当する図書がありません +