diff --git a/src/main/java/com/example/demo/controller/BookController.java b/src/main/java/com/example/demo/controller/BookController.java index 2bc6f8b..dba3968 100644 --- a/src/main/java/com/example/demo/controller/BookController.java +++ b/src/main/java/com/example/demo/controller/BookController.java @@ -1,15 +1,28 @@ package com.example.demo.controller; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PostMapping; +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 public class BookController { - @PostMapping("/book") - public String book() { - return "book"; - } - - + @Autowired + private BookServiceImpl bookService; + @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 new file mode 100644 index 0000000..fab3a3b --- /dev/null +++ b/src/main/java/com/example/demo/entity/Book.java @@ -0,0 +1,95 @@ +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.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToOne; +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!! + @ManyToOne + @JoinColumn(name = "book_subcategory_id", nullable = false) + private BookSubcategory bookSubcategory; + + // 保管場所 + @ManyToOne + @JoinColumn(name = "location_id", nullable = false) + private StorageLocation storageLocation; + + + // 本の状態 + @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?? + @ManyToOne + @JoinColumn(name = "donor_id", nullable = false) + private Employee employee; + + //備考 + @Column(name = "description", nullable = true) + private String description; + + //申請承認フラグ + @Column(name = "book_approval", nullable = false) + private Integer bookApproval; + + @OneToOne(mappedBy = "book") + private BookLend bookLends; + +} 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/BookLend.java b/src/main/java/com/example/demo/entity/BookLend.java new file mode 100644 index 0000000..970526f --- /dev/null +++ b/src/main/java/com/example/demo/entity/BookLend.java @@ -0,0 +1,46 @@ +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.JoinColumn; +import jakarta.persistence.OneToOne; +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など) + @OneToOne + @JoinColumn(name = "book_manage_id", referencedColumnName = "book_manage_id",nullable = false) + private Book book; + + // 図書管理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/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 new file mode 100644 index 0000000..f5a3fda --- /dev/null +++ b/src/main/java/com/example/demo/entity/Employee.java @@ -0,0 +1,37 @@ +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 = "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; + + @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/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..f8d5774 --- /dev/null +++ b/src/main/java/com/example/demo/repository/BookRepository.java @@ -0,0 +1,10 @@ +package com.example.demo.repository; + + +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 new file mode 100644 index 0000000..6d92083 --- /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..c12e07d --- /dev/null +++ b/src/main/java/com/example/demo/service/BookServiceImpl.java @@ -0,0 +1,35 @@ +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.Book; +import com.example.demo.repository.BookRepository; + +@Service +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(); + } + + + + +} diff --git a/src/main/resources/templates/book.html b/src/main/resources/templates/book.html index abb6211..4063ceb 100644 --- a/src/main/resources/templates/book.html +++ b/src/main/resources/templates/book.html @@ -1,25 +1,100 @@ - + + + - -社内図書一覧 + + 社内図書一覧 + -
+
+

社内図書一覧

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
図書IDISBNタイトル著者名出版社出版日カテゴリー名サブカテゴリー名保管場所本の状態登録日時更新日時寄贈者貸出状態??操作??
- - - -
- -
+ + + + + + +
+ +
+ + \ No newline at end of file