From 36af7db10b031d1ab75570d29007e4450ba0d39a Mon Sep 17 00:00:00 2001 From: s-tajihi <2026_04_00508@it-college.co.jp> Date: Fri, 18 Sep 2026 17:02:26 +0900 Subject: [PATCH 1/7] =?UTF-8?q?[edit]=20!!!!=E2=9C=96=E3=82=A8=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E7=99=BA=E7=94=9F=E4=B8=AD=E3=81=AE=E3=81=9F=E3=82=81?= =?UTF-8?q?=E3=83=97=E3=83=AB=E2=9C=96!!!!=EF=BC=88=E5=9B=B3=E6=9B=B8?= =?UTF-8?q?=E4=B8=80=E8=A6=A7=E8=A1=A8=E7=A4=BA=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/BookController.java | 16 +-- .../java/com/example/demo/entity/Book.java | 108 ++++++++++++++++++ .../java/com/example/demo/form/BookForm.java | 5 + .../demo/repository/BookRepository.java | 9 ++ .../com/example/demo/service/BookService.java | 11 ++ .../example/demo/service/BookServiceImpl.java | 33 ++++++ src/main/resources/templates/book.html | 24 ++-- 7 files changed, 190 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/example/demo/entity/Book.java create mode 100644 src/main/java/com/example/demo/form/BookForm.java create mode 100644 src/main/java/com/example/demo/repository/BookRepository.java create mode 100644 src/main/java/com/example/demo/service/BookService.java create mode 100644 src/main/java/com/example/demo/service/BookServiceImpl.java diff --git a/src/main/java/com/example/demo/controller/BookController.java b/src/main/java/com/example/demo/controller/BookController.java index 2bc6f8b..a40d098 100644 --- a/src/main/java/com/example/demo/controller/BookController.java +++ b/src/main/java/com/example/demo/controller/BookController.java @@ -1,15 +1,15 @@ package com.example.demo.controller; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; + @Controller public class BookController { - @PostMapping("/book") - public String book() { - return "book"; - } - - - + @GetMapping("/book") + public String book(Model model) { + model.addAttribute("book",bookService.findAll()); + return "book"; + } } diff --git a/src/main/java/com/example/demo/entity/Book.java b/src/main/java/com/example/demo/entity/Book.java new file mode 100644 index 0000000..ed11f0a --- /dev/null +++ b/src/main/java/com/example/demo/entity/Book.java @@ -0,0 +1,108 @@ +package com.example.demo.entity; + +import java.sql.Date; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import lombok.Data; + +@Entity // このクラスがDBのテーブルに対応することを表す +@Data +@Table(name = "book") +public class Book { + //貸出処理で使用する図書ID + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "book_Id", nullable = false) + private int bookId; + + // 図書管理ID(BK-1など) + @Column(name = "book_manage_id", nullable = true) + private String bookManageId; + + // タイトル + @Column(name = "title", nullable = false) + private String title; + + //ISBN + @Column(name = "isbn", nullable = false) + private String isbn; + + // 著者名 + @Column(name = "author", nullable = false) + private String author; + + // 出版社 + @Column(name = "publisher", nullable = true) + private String publisher; + + // 出版日 + @Column(name = "publication_date", nullable = true) + private Date publicationDate; + + // サブカテゴリーID + @Column(name = "subcategory_id", nullable = false) + private Integer subcategoryId; + + // // カテゴリー名 + // @Column(name = "category_name", nullable = false) + // private String categoryName; + // + // // サブカテゴリー名 + // @Column(name = "subcategory_name", nullable = false) + // private String subcategoryName; + + // 保管場所ID + @Column(name = "location_id", nullable = false) + private Integer locationId; + + // // 保管場所 + // @Column(name = "location_name", nullable = false) + // private String locationName; + + // // 貸出状態 + // @Column(name = "book_Id", nullable = false) + // private int bookStatus; + + // 本の状態 + @Column(name = "condition_s", nullable = false) + private int condition; + + // 登録日 + @Column(name = "created_at", nullable = false) + private Date createdAt; + + // 更新日 + @Column(name = "updated_at", nullable = false) + private Date updatedAt; + + //削除フラグ + @Column(name = "is_deleted", nullable = false) + private Integer isDeleted; + + // 寄贈者社員ID + @Column(name = "donor_id", nullable = true) + private String donorId; + + // // 寄贈者社員名 + // @Column(name = "donor_name", nullable = true) + // private String donorName; + + // //返却予定日 + // @Column(name = "return_date", nullable = false) + // private Date returnDate; + + //備考 + @Column(name = "description", nullable = true) + private String description; + + //申請承認フラグ + @Column(name = "book_approval", nullable = false) + private Integer bookApproval; + +} diff --git a/src/main/java/com/example/demo/form/BookForm.java b/src/main/java/com/example/demo/form/BookForm.java new file mode 100644 index 0000000..bb2ecf0 --- /dev/null +++ b/src/main/java/com/example/demo/form/BookForm.java @@ -0,0 +1,5 @@ +package com.example.demo.form; + +public class BookForm { + +} diff --git a/src/main/java/com/example/demo/repository/BookRepository.java b/src/main/java/com/example/demo/repository/BookRepository.java new file mode 100644 index 0000000..7966b67 --- /dev/null +++ b/src/main/java/com/example/demo/repository/BookRepository.java @@ -0,0 +1,9 @@ +package com.example.demo.repository; + +import java.awt.print.Book; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface BookRepository extends JpaRepository{ + +} diff --git a/src/main/java/com/example/demo/service/BookService.java b/src/main/java/com/example/demo/service/BookService.java new file mode 100644 index 0000000..8640dad --- /dev/null +++ b/src/main/java/com/example/demo/service/BookService.java @@ -0,0 +1,11 @@ +package com.example.demo.service; + +import java.util.List; + +import com.example.demo.entity.Book; + +public interface BookService { + String booklist(Book book); + + List findAll(); +} diff --git a/src/main/java/com/example/demo/service/BookServiceImpl.java b/src/main/java/com/example/demo/service/BookServiceImpl.java new file mode 100644 index 0000000..94e023b --- /dev/null +++ b/src/main/java/com/example/demo/service/BookServiceImpl.java @@ -0,0 +1,33 @@ +package com.example.demo.service; + +import java.awt.print.Book; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.example.demo.entity.Book; +import com.example.demo.repository.BookRepository; + +@Service +public class BookServiceImpl implements BookService{ + + @Autowired + private BookRepository bookRepository; + + @Override + public String booklist(Book book) { + Book booklist = new Book(); + booklist.set + return null; + } + + @Override + public List findAll() { + // TODO 自動生成されたメソッド・スタブ + return null; + } + + + +} diff --git a/src/main/resources/templates/book.html b/src/main/resources/templates/book.html index d18c996..4ee0ec3 100644 --- a/src/main/resources/templates/book.html +++ b/src/main/resources/templates/book.html @@ -1,18 +1,26 @@ + - -社内図書一覧 + + 社内図書一覧 + -
+ - -
+ + + \ No newline at end of file From 47fb36b066e90d7d8e98c368cc87dbfe80b94dd7 Mon Sep 17 00:00:00 2001 From: h-hirane Date: Fri, 18 Sep 2026 18:37:14 +0900 Subject: [PATCH 2/7] =?UTF-8?q?[edit]=20=E3=83=88=E3=83=83=E3=83=97?= =?UTF-8?q?=E3=83=A1=E3=83=8B=E3=83=A5=E3=83=BC=E3=81=8B=E3=82=89=E3=83=91?= =?UTF-8?q?=E3=82=B9=E3=83=AF=E3=83=BC=E3=83=89=E5=A4=89=E6=9B=B4=E7=94=BB?= =?UTF-8?q?=E9=9D=A2=E3=81=AB=E9=81=B7=E7=A7=BB=E3=81=99=E3=82=8B=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/templates/topmenu.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/templates/topmenu.html b/src/main/resources/templates/topmenu.html index 83c566d..4fc97dc 100644 --- a/src/main/resources/templates/topmenu.html +++ b/src/main/resources/templates/topmenu.html @@ -73,7 +73,7 @@
- +

パスワード変更

From 2bcece419b17b4581ad30c7f61efa5959d1a5093 Mon Sep 17 00:00:00 2001 From: w-yuki Date: Thu, 24 Sep 2026 09:41:41 +0900 Subject: [PATCH 3/7] =?UTF-8?q?[add]=E5=AF=84=E8=B4=88=E7=94=B3=E8=AB=8B?= =?UTF-8?q?=E3=83=95=E3=82=A9=E3=83=BC=E3=83=A0=E3=82=92=E8=BF=BD=E5=8A=A0?= =?UTF-8?q?=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 --- .../com/example/demo/entity/BookApproval.java | 80 +++ .../example/demo/form/BookApprovalForm.java | 51 ++ .../repository/BookApprovalRepository.java | 12 + .../demo/service/BookApprovalService.java | 61 ++ .../resources/templates/bookApproval.html | 634 +----------------- .../templates/bookApprovalConfirm.html | 30 +- 6 files changed, 225 insertions(+), 643 deletions(-) create mode 100644 src/main/java/com/example/demo/entity/BookApproval.java create mode 100644 src/main/java/com/example/demo/form/BookApprovalForm.java create mode 100644 src/main/java/com/example/demo/repository/BookApprovalRepository.java create mode 100644 src/main/java/com/example/demo/service/BookApprovalService.java diff --git a/src/main/java/com/example/demo/entity/BookApproval.java b/src/main/java/com/example/demo/entity/BookApproval.java new file mode 100644 index 0000000..6e107cf --- /dev/null +++ b/src/main/java/com/example/demo/entity/BookApproval.java @@ -0,0 +1,80 @@ +package com.example.demo.entity; + +import java.time.LocalDate; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import lombok.Data; + +/* + * 【JPAエンティティ】department テーブルの「1行」を表すJavaオブジェクト。 + * JDBCではSQL結果を手動で詰め替えていたが、JPAは + * 「クラス⇔テーブル」「フィールド⇔カラム」の対応を書いておけば自動でやってくれる。 + */ + +@Data +@Entity +@Table(name = "book") // DBのテーブルに対応するエンティティであることを宣言 +public class BookApproval { // 対応テーブル名(クラス名と違うので明示) + + /* + * @Id … 主キー(エンティティに必須) + * @GeneratedValue … DB側で自動採番。IDENTITY = MySQLのAUTO_INCREMENTを使う + * @Column(name) … カラム名。フィールド名と違うので明示 + */ + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "book_id") + private Integer bookId; + + @Column(name = "book_manage_id") + private String bookManageId; + + @Column(name = "title") + private String title; + + @Column(name = "isbn") + private String isbn; + + @Column(name = "author") + private String author; + + @Column(name = "publisher") + private String publisher; + + @Column(name = "publication_date") + private LocalDate publicationDate; + + @Column(name = "book_subcategory_id") + private Integer bookSubcategoryId; + + @Column(name = "location_id") + private Integer locationId; + + @Column(name = "condition_s") + private Integer conditionS; + + @Column(name = "created_at") + private LocalDate createdAt; + + @Column(name = "updated_at") + private LocalDate updatedAt; + + @Column(name = "is_deleted") + private Integer isDeleted; + + @Column(name = "donor_id") + private Integer donorId; + + @Column(name = "description") + private String description; + + @Column(name = "book_approval") + private Integer bookApproval; +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/form/BookApprovalForm.java b/src/main/java/com/example/demo/form/BookApprovalForm.java new file mode 100644 index 0000000..53e1232 --- /dev/null +++ b/src/main/java/com/example/demo/form/BookApprovalForm.java @@ -0,0 +1,51 @@ +package com.example.demo.form; + +import java.time.LocalDate; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor //全フィールドを初期化するコンストラクタが生成 +@NoArgsConstructor //デフォルトコンストラクタを自動で生成 +public class BookApprovalForm { + + //社員ID + private String employeeId; + + //社員名 + private String employeeName; + + //タイトル(必須) + @NotBlank(message = "タイトルは必須です") + private String title; + + //著者名(必須) + @NotBlank(message = "著者名は必須です") + private String author; + + //本の状態(必須) + @NotBlank(message = "本の状態は必須です") + private String bookCondition; + + //出版社(任意) + private String publisher; + + //ISBN(任意) + private String isbn; + + //出版日(任意) + private LocalDate publishDate; + + //備考(任意) + //最大400文字 + @Size(max = 400, message = "備考は400文字以内で入力してください") + private String remarks; + +} + + diff --git a/src/main/java/com/example/demo/repository/BookApprovalRepository.java b/src/main/java/com/example/demo/repository/BookApprovalRepository.java new file mode 100644 index 0000000..77c4066 --- /dev/null +++ b/src/main/java/com/example/demo/repository/BookApprovalRepository.java @@ -0,0 +1,12 @@ +package com.example.demo.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import com.example.demo.entity.BookApproval; + + + @Repository + public interface BookApprovalRepository extends JpaRepository{ + } + diff --git a/src/main/java/com/example/demo/service/BookApprovalService.java b/src/main/java/com/example/demo/service/BookApprovalService.java new file mode 100644 index 0000000..7ef08c1 --- /dev/null +++ b/src/main/java/com/example/demo/service/BookApprovalService.java @@ -0,0 +1,61 @@ +package com.example.demo.service; + +import java.time.LocalDate; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.example.demo.entity.BookApproval; +import com.example.demo.form.BookApprovalForm; +import com.example.demo.repository.BookApprovalRepository; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class BookApprovalService { + + private final BookApprovalRepository bookApprovalRepository; + + /* + * 【登録(regist)】 + * @Transactional … このメソッドを1トランザクションで実行。途中で例外が出れば全ロールバック。 + * + * Controllerから来る employee.department は new して departmentId だけ入れた「仮」オブジェクト。 + * JPAから見ると管理下にない(detached)状態なので、そのまま保存すると + * 部署まで新規INSERTしようとするなど事故のもと。 + * → findById で「管理下(managed)の本物のDepartment」を取り直し、紐付けてから save する。 + * + * save():主キー(employeeId)がnullなのでINSERTになり、AUTO_INCREMENTのIDが採番される。 + */ + +@Transactional + public void regist(BookApprovalForm bookApprovalForm) { + + BookApproval entity = new BookApproval(); + + //必須こうもく + entity.setTitle(bookApprovalForm.getTitle()); + entity.setAuthor(bookApprovalForm.getAuthor()); + + //任意 + entity.setPublisher(bookApprovalForm.getPublisher()); + entity.setIsbn(bookApprovalForm.getIsbn()); + entity.setPublicationDate(bookApprovalForm.getPublishDate()); + entity.setDescription(bookApprovalForm.getRemarks()); + + //本の状態 + entity.setConditionS(Integer.parseInt(bookApprovalForm.getBookCondition())); + + //寄贈者 + entity.setDonorId(Integer.parseInt(bookApprovalForm.getEmployeeId())); + + + + //登録日時 + entity.setCreatedAt(LocalDate.now()); + entity.setUpdatedAt(LocalDate.now()); + + bookApprovalRepository.save(entity); + } + } diff --git a/src/main/resources/templates/bookApproval.html b/src/main/resources/templates/bookApproval.html index bfaba5f..9c93708 100644 --- a/src/main/resources/templates/bookApproval.html +++ b/src/main/resources/templates/bookApproval.html @@ -7,638 +7,8 @@ 寄贈申請フォーム - - - + + diff --git a/src/main/resources/templates/bookApprovalConfirm.html b/src/main/resources/templates/bookApprovalConfirm.html index 0ef1357..e00b29a 100644 --- a/src/main/resources/templates/bookApprovalConfirm.html +++ b/src/main/resources/templates/bookApprovalConfirm.html @@ -821,21 +821,19 @@ textarea {

- + + type="button" + class="btn btn-primary" + onclick="CompleteModal()">申請送信
@@ -852,5 +850,15 @@ textarea { + + + \ No newline at end of file From ab48f30b6eedd6fb8e4c0356f85ec032ab401e3e Mon Sep 17 00:00:00 2001 From: s-tajihi <2026_04_00508@it-college.co.jp> Date: Thu, 24 Sep 2026 12:51:58 +0900 Subject: [PATCH 4/7] =?UTF-8?q?[add]=20BookLend=E3=81=A8Employee=E3=81=AEE?= =?UTF-8?q?ntity=E3=82=92=E4=BD=9C=E6=88=90=E3=81=97=E3=81=BE=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/entity/BookLend.java | 43 +++++++++++++++++++ .../com/example/demo/entity/Employee.java | 29 +++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 src/main/java/com/example/demo/entity/BookLend.java create mode 100644 src/main/java/com/example/demo/entity/Employee.java diff --git a/src/main/java/com/example/demo/entity/BookLend.java b/src/main/java/com/example/demo/entity/BookLend.java new file mode 100644 index 0000000..c4071b8 --- /dev/null +++ b/src/main/java/com/example/demo/entity/BookLend.java @@ -0,0 +1,43 @@ +package com.example.demo.entity; + +import java.sql.Date; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import lombok.Data; + +@Entity // このクラスがDBのテーブルに対応することを表す +@Data +@Table(name = "book_lend") +public class BookLend { + //貸出ID + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "lend_Id", nullable = false) + private int lendId; + + // 図書管理ID(BK-1など) + @Column(name = "book_manage_id", nullable = false) + private String bookManageId; + + // 図書管理ID(BK-1など) + @Column(name = "employee_id", nullable = false) + private Integer employeeId; + + // 貸出日 + @Column(name = "book_lend_date", nullable = false) + private Date bookLendDate; + + // 返却日 + @Column(name = "book_return_date", nullable = false) + private Date bookReturnDate; + + // 貸出状態 + @Column(name = "book_status", nullable = false) + private Integer bookStatus; +} diff --git a/src/main/java/com/example/demo/entity/Employee.java b/src/main/java/com/example/demo/entity/Employee.java new file mode 100644 index 0000000..956dfa2 --- /dev/null +++ b/src/main/java/com/example/demo/entity/Employee.java @@ -0,0 +1,29 @@ +package com.example.demo.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import lombok.Data; + +@Entity // このクラスがDBのテーブルに対応することを表す +@Data +@Table(name = "employee") +public class Employee { + //社員ID + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "employee_Id", nullable = false) + private int employeeId; + + // 社員名 + @Column(name = "employee_name", nullable = false) + private String employeeName; + + //部署ID + @Column(name = "department_id", nullable = false) + private Integer departmentId; +} From a6a42295c40a89d76ca26b8ca82c0eb77e51c384 Mon Sep 17 00:00:00 2001 From: s-tajihi <2026_04_00508@it-college.co.jp> Date: Thu, 24 Sep 2026 12:52:54 +0900 Subject: [PATCH 5/7] =?UTF-8?q?[edit]=20=E5=9B=B3=E6=9B=B8=E4=B8=80?= =?UTF-8?q?=E8=A6=A7=E8=A1=A8=E7=A4=BA=E3=81=AE=E3=82=A8=E3=83=A9=E3=83=BC?= =?UTF-8?q?=E7=AE=87=E6=89=80=E3=82=92=E4=BF=AE=E6=AD=A3=E3=81=97=E3=81=BE?= =?UTF-8?q?=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 | 8 ++ .../java/com/example/demo/entity/Book.java | 5 +- .../demo/repository/BookRepository.java | 3 +- .../com/example/demo/service/BookService.java | 2 +- .../example/demo/service/BookServiceImpl.java | 26 ++++--- src/main/resources/templates/book.html | 74 ++++++++++++++++--- 6 files changed, 90 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/example/demo/controller/BookController.java b/src/main/java/com/example/demo/controller/BookController.java index a40d098..595013f 100644 --- a/src/main/java/com/example/demo/controller/BookController.java +++ b/src/main/java/com/example/demo/controller/BookController.java @@ -1,13 +1,21 @@ 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 com.example.demo.service.BookServiceImpl; + @Controller public class BookController { + @Autowired + private BookServiceImpl bookService; + @GetMapping("/book") public String book(Model model) { + + // DBから取得したデータをHTMLで扱えるようにする model.addAttribute("book",bookService.findAll()); return "book"; } diff --git a/src/main/java/com/example/demo/entity/Book.java b/src/main/java/com/example/demo/entity/Book.java index ed11f0a..7ead3fe 100644 --- a/src/main/java/com/example/demo/entity/Book.java +++ b/src/main/java/com/example/demo/entity/Book.java @@ -15,7 +15,8 @@ import lombok.Data; @Data @Table(name = "book") public class Book { - //貸出処理で使用する図書ID + + //図書ID @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "book_Id", nullable = false) @@ -46,7 +47,7 @@ public class Book { private Date publicationDate; // サブカテゴリーID - @Column(name = "subcategory_id", nullable = false) + @Column(name = "book_subcategory_id", nullable = false) private Integer subcategoryId; // // カテゴリー名 diff --git a/src/main/java/com/example/demo/repository/BookRepository.java b/src/main/java/com/example/demo/repository/BookRepository.java index 7966b67..f8d5774 100644 --- a/src/main/java/com/example/demo/repository/BookRepository.java +++ b/src/main/java/com/example/demo/repository/BookRepository.java @@ -1,9 +1,10 @@ package com.example.demo.repository; -import java.awt.print.Book; import org.springframework.data.jpa.repository.JpaRepository; +import com.example.demo.entity.Book; + public interface BookRepository extends JpaRepository{ } diff --git a/src/main/java/com/example/demo/service/BookService.java b/src/main/java/com/example/demo/service/BookService.java index 8640dad..6d92083 100644 --- a/src/main/java/com/example/demo/service/BookService.java +++ b/src/main/java/com/example/demo/service/BookService.java @@ -7,5 +7,5 @@ import com.example.demo.entity.Book; public interface BookService { String booklist(Book book); - List findAll(); + List findAll(); } diff --git a/src/main/java/com/example/demo/service/BookServiceImpl.java b/src/main/java/com/example/demo/service/BookServiceImpl.java index 94e023b..c12e07d 100644 --- a/src/main/java/com/example/demo/service/BookServiceImpl.java +++ b/src/main/java/com/example/demo/service/BookServiceImpl.java @@ -1,6 +1,6 @@ package com.example.demo.service; -import java.awt.print.Book; + import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -10,23 +10,25 @@ import com.example.demo.entity.Book; import com.example.demo.repository.BookRepository; @Service -public class BookServiceImpl implements BookService{ +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; +// } + + - @Override - public String booklist(Book book) { - Book booklist = new Book(); - booklist.set - return null; - } - - @Override public List findAll() { - // TODO 自動生成されたメソッド・スタブ - return null; + return bookRepository.findAll(); } + diff --git a/src/main/resources/templates/book.html b/src/main/resources/templates/book.html index 4ee0ec3..277d6f5 100644 --- a/src/main/resources/templates/book.html +++ b/src/main/resources/templates/book.html @@ -1,5 +1,6 @@ - + + @@ -7,19 +8,68 @@ -
+
+

社内図書一覧

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
図書IDISBN書籍名著者名出版社出版日カテゴリー名サブカテゴリー名保管場所貸出状態本の状態備考登録日時更新日時寄贈者寄贈者操作
- - + + From f47ec50d443cacdf942e9b491527d048a8d20842 Mon Sep 17 00:00:00 2001 From: w-yuki Date: Thu, 24 Sep 2026 13:46:28 +0900 Subject: [PATCH 6/7] =?UTF-8?q?[add]=E3=82=AB=E3=83=86=E3=82=B4=E3=83=AA?= =?UTF-8?q?=E3=83=BC=E3=81=AEEntity=E3=81=A8Repository=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/entity/BookCategory.java | 22 +++++++++++++++++++ .../repository/BookCategoryRepository.java | 10 +++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/main/java/com/example/demo/entity/BookCategory.java create mode 100644 src/main/java/com/example/demo/repository/BookCategoryRepository.java diff --git a/src/main/java/com/example/demo/entity/BookCategory.java b/src/main/java/com/example/demo/entity/BookCategory.java new file mode 100644 index 0000000..fd76c7f --- /dev/null +++ b/src/main/java/com/example/demo/entity/BookCategory.java @@ -0,0 +1,22 @@ +package com.example.demo.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import lombok.Data; + +@Entity +@Data +@Table(name="book_category") +public class BookCategory { + + + @Id + @Column(name = "book_category_id") + private Integer bookCategoryId; + + @Column(name = "book_category_name") + private String bookCategoryName; +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/BookCategoryRepository.java b/src/main/java/com/example/demo/repository/BookCategoryRepository.java new file mode 100644 index 0000000..6b8a095 --- /dev/null +++ b/src/main/java/com/example/demo/repository/BookCategoryRepository.java @@ -0,0 +1,10 @@ +package com.example.demo.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.BookCategory; + +public interface BookCategoryRepository + extends JpaRepository { + +} \ No newline at end of file From 24caa7f6e26f180e926d7aa64f33345d2630bd03 Mon Sep 17 00:00:00 2001 From: s-tajihi <2026_04_00508@it-college.co.jp> Date: Thu, 24 Sep 2026 16:09:42 +0900 Subject: [PATCH 7/7] =?UTF-8?q?[edit]=20=E3=82=AB=E3=83=86=E3=82=B4?= =?UTF-8?q?=E3=83=AA=E3=83=BC=E5=90=8D=E3=83=BB=E3=82=B5=E3=83=96=E3=82=AB?= =?UTF-8?q?=E3=83=86=E3=82=B4=E3=83=AA=E3=83=BC=E5=90=8D=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=81=AE=E7=B7=A8=E9=9B=86=E3=82=92=E3=81=97=E3=81=BE=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/BookController.java | 5 ++ .../java/com/example/demo/entity/Book.java | 50 ++++++------------- .../com/example/demo/entity/BookCategory.java | 8 ++- .../example/demo/entity/BookSubcategory.java | 34 +++++++++++++ .../com/example/demo/entity/Employee.java | 8 +++ .../example/demo/entity/StorageLocation.java | 34 +++++++++++++ src/main/resources/templates/book.html | 9 ++-- 7 files changed, 109 insertions(+), 39 deletions(-) create mode 100644 src/main/java/com/example/demo/entity/BookSubcategory.java create mode 100644 src/main/java/com/example/demo/entity/StorageLocation.java diff --git a/src/main/java/com/example/demo/controller/BookController.java b/src/main/java/com/example/demo/controller/BookController.java index 595013f..dba3968 100644 --- a/src/main/java/com/example/demo/controller/BookController.java +++ b/src/main/java/com/example/demo/controller/BookController.java @@ -1,10 +1,13 @@ package com.example.demo.controller; +import java.util.List; + 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 com.example.demo.entity.Book; import com.example.demo.service.BookServiceImpl; @Controller @@ -15,6 +18,8 @@ public class BookController { @GetMapping("/book") public String book(Model model) { + List aaa = bookService.findAll(); + // DBから取得したデータをHTMLで扱えるようにする model.addAttribute("book",bookService.findAll()); return "book"; diff --git a/src/main/java/com/example/demo/entity/Book.java b/src/main/java/com/example/demo/entity/Book.java index 7ead3fe..06c6fe3 100644 --- a/src/main/java/com/example/demo/entity/Book.java +++ b/src/main/java/com/example/demo/entity/Book.java @@ -7,6 +7,8 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import lombok.Data; @@ -15,11 +17,11 @@ import lombok.Data; @Data @Table(name = "book") public class Book { - + //図書ID @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "book_Id", nullable = false) + @Column(name = "book_id", nullable = false) private int bookId; // 図書管理ID(BK-1など) @@ -46,29 +48,16 @@ public class Book { @Column(name = "publication_date", nullable = true) private Date publicationDate; - // サブカテゴリーID - @Column(name = "book_subcategory_id", nullable = false) - private Integer subcategoryId; + // サブカテゴリーID!! + @ManyToOne + @JoinColumn(name = "book_subcategory_id", nullable = false) + private BookSubcategory bookSubcategory; - // // カテゴリー名 - // @Column(name = "category_name", nullable = false) - // private String categoryName; - // - // // サブカテゴリー名 - // @Column(name = "subcategory_name", nullable = false) - // private String subcategoryName; + // 保管場所 + @ManyToOne + @JoinColumn(name = "location_id", nullable = false) + private StorageLocation storageLocation; - // 保管場所ID - @Column(name = "location_id", nullable = false) - private Integer locationId; - - // // 保管場所 - // @Column(name = "location_name", nullable = false) - // private String locationName; - - // // 貸出状態 - // @Column(name = "book_Id", nullable = false) - // private int bookStatus; // 本の状態 @Column(name = "condition_s", nullable = false) @@ -86,17 +75,10 @@ public class Book { @Column(name = "is_deleted", nullable = false) private Integer isDeleted; - // 寄贈者社員ID - @Column(name = "donor_id", nullable = true) - private String donorId; - - // // 寄贈者社員名 - // @Column(name = "donor_name", nullable = true) - // private String donorName; - - // //返却予定日 - // @Column(name = "return_date", nullable = false) - // private Date returnDate; + // 寄贈者社員ID?? + @ManyToOne + @JoinColumn(name = "donor_id", nullable = false) + private Employee employee; //備考 @Column(name = "description", nullable = true) diff --git a/src/main/java/com/example/demo/entity/BookCategory.java b/src/main/java/com/example/demo/entity/BookCategory.java index fd76c7f..de7633d 100644 --- a/src/main/java/com/example/demo/entity/BookCategory.java +++ b/src/main/java/com/example/demo/entity/BookCategory.java @@ -1,8 +1,12 @@ package com.example.demo.entity; +import java.util.ArrayList; +import java.util.List; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import lombok.Data; @@ -12,11 +16,13 @@ import lombok.Data; @Table(name="book_category") public class BookCategory { - @Id @Column(name = "book_category_id") private Integer bookCategoryId; @Column(name = "book_category_name") private String bookCategoryName; + + @OneToMany(mappedBy = "bookCategory") + private List BookSubcategories = new ArrayList<>(); } \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/BookSubcategory.java b/src/main/java/com/example/demo/entity/BookSubcategory.java new file mode 100644 index 0000000..63e1581 --- /dev/null +++ b/src/main/java/com/example/demo/entity/BookSubcategory.java @@ -0,0 +1,34 @@ +package com.example.demo.entity; + +import java.util.ArrayList; +import java.util.List; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; + +import lombok.Data; + +@Entity +@Data +@Table(name = "book_subcategory") +public class BookSubcategory { + @Id + @Column(name = "book_subcategory_id") + private Integer bookSubcategoryId; + + @ManyToOne + @JoinColumn(name = "book_category_id", nullable = false) + private BookCategory bookCategory; + + @Column(name = "book_subcategory_name") + private String bookSubcategoryName; + + @OneToMany(mappedBy = "bookSubcategory") + private List Books = new ArrayList<>(); + +} diff --git a/src/main/java/com/example/demo/entity/Employee.java b/src/main/java/com/example/demo/entity/Employee.java index 956dfa2..f5a3fda 100644 --- a/src/main/java/com/example/demo/entity/Employee.java +++ b/src/main/java/com/example/demo/entity/Employee.java @@ -1,10 +1,14 @@ package com.example.demo.entity; +import java.util.ArrayList; +import java.util.List; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import lombok.Data; @@ -26,4 +30,8 @@ public class Employee { //部署ID @Column(name = "department_id", nullable = false) private Integer departmentId; + + @OneToMany(mappedBy = "employee") + private List employees = new ArrayList<>(); + } diff --git a/src/main/java/com/example/demo/entity/StorageLocation.java b/src/main/java/com/example/demo/entity/StorageLocation.java new file mode 100644 index 0000000..b12c5a4 --- /dev/null +++ b/src/main/java/com/example/demo/entity/StorageLocation.java @@ -0,0 +1,34 @@ +package com.example.demo.entity; + +import java.util.ArrayList; +import java.util.List; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; + +import lombok.Data; + +@Entity // このクラスがDBのテーブルに対応することを表す +@Data +@Table(name = "storage_location") +public class StorageLocation { + //保管場所ID + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "location_id", nullable = false) + private int locationId; + + // 保管場所名 + @Column(name = "location_name", nullable = false) + private String locationName; + + @OneToMany(mappedBy = "storageLocation") + private List Location = new ArrayList<>(); + + +} diff --git a/src/main/resources/templates/book.html b/src/main/resources/templates/book.html index 277d6f5..7b4ee07 100644 --- a/src/main/resources/templates/book.html +++ b/src/main/resources/templates/book.html @@ -32,7 +32,7 @@ 登録日時 更新日時 寄贈者 - 寄贈者 + ?? 操作 @@ -46,13 +46,14 @@ - - + + + - +