From 499566b7873f793c7d1cf9a19bb4c448880acc92 Mon Sep 17 00:00:00 2001 From: sohyun022 Date: Thu, 26 Sep 2024 21:20:03 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EB=AC=B8=EC=86=8C=ED=98=84=201=EC=A3=BC?= =?UTF-8?q?=EC=B0=A8=20=EA=B3=BC=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 1 + .../java/doit/jpastudy2/Library/Book.java | 32 +++++++++++++++++ .../java/doit/jpastudy2/Library/Member.java | 35 ++++++++++++++++++ .../Library/repository/BookRepository.java | 11 ++++++ .../Library/repository/MemberRepository.java | 11 ++++++ .../repository/BookRepositoryTest.java | 32 +++++++++++++++++ .../repository/MemberRepositoryTest.java | 36 +++++++++++++++++++ 7 files changed, 158 insertions(+) create mode 100644 src/main/java/doit/jpastudy2/Library/Book.java create mode 100644 src/main/java/doit/jpastudy2/Library/Member.java create mode 100644 src/main/java/doit/jpastudy2/Library/repository/BookRepository.java create mode 100644 src/main/java/doit/jpastudy2/Library/repository/MemberRepository.java create mode 100644 src/test/java/doit/jpastudy2/Library/repository/BookRepositoryTest.java create mode 100644 src/test/java/doit/jpastudy2/Library/repository/MemberRepositoryTest.java diff --git a/build.gradle b/build.gradle index 0cefff2..537619d 100644 --- a/build.gradle +++ b/build.gradle @@ -26,6 +26,7 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-validation' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' diff --git a/src/main/java/doit/jpastudy2/Library/Book.java b/src/main/java/doit/jpastudy2/Library/Book.java new file mode 100644 index 0000000..cf6e863 --- /dev/null +++ b/src/main/java/doit/jpastudy2/Library/Book.java @@ -0,0 +1,32 @@ +package doit.jpastudy2.Library; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@NoArgsConstructor +public class Book { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + private String title; + private String author; + private String publisher; + private String isbn; + + @Builder + public Book(String title, String author, String publisher, String isbn) { + this.title = title; + this.author = author; + this.publisher = publisher; + this.isbn = isbn; + + } +} diff --git a/src/main/java/doit/jpastudy2/Library/Member.java b/src/main/java/doit/jpastudy2/Library/Member.java new file mode 100644 index 0000000..ac161d5 --- /dev/null +++ b/src/main/java/doit/jpastudy2/Library/Member.java @@ -0,0 +1,35 @@ +package doit.jpastudy2.Library; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.validation.constraints.Email; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; + +@Entity +@Getter +@NoArgsConstructor +public class Member { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + private String name; + @Email + private String email; + private String phone; + private LocalDate joinDate; + + @Builder + public Member(String name, String email, String phone, LocalDate joinDate) { + this.name = name; + this.email = email; + this.phone = phone; + this.joinDate = joinDate; + } +} diff --git a/src/main/java/doit/jpastudy2/Library/repository/BookRepository.java b/src/main/java/doit/jpastudy2/Library/repository/BookRepository.java new file mode 100644 index 0000000..26cf75a --- /dev/null +++ b/src/main/java/doit/jpastudy2/Library/repository/BookRepository.java @@ -0,0 +1,11 @@ +package doit.jpastudy2.Library.repository; + +import doit.jpastudy2.Library.Book; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface BookRepository extends JpaRepository { + + public Book findByTitleAndAuthor(String title, String author); + public Book findByIsbn(String isbn); + +} diff --git a/src/main/java/doit/jpastudy2/Library/repository/MemberRepository.java b/src/main/java/doit/jpastudy2/Library/repository/MemberRepository.java new file mode 100644 index 0000000..bc93f51 --- /dev/null +++ b/src/main/java/doit/jpastudy2/Library/repository/MemberRepository.java @@ -0,0 +1,11 @@ +package doit.jpastudy2.Library.repository; + +import doit.jpastudy2.Library.Member; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberRepository extends JpaRepository { + + public Member findByName(String name); + public Member findByEmail(String email); + public Member findByPhone(String phone); +} diff --git a/src/test/java/doit/jpastudy2/Library/repository/BookRepositoryTest.java b/src/test/java/doit/jpastudy2/Library/repository/BookRepositoryTest.java new file mode 100644 index 0000000..b8e8dcb --- /dev/null +++ b/src/test/java/doit/jpastudy2/Library/repository/BookRepositoryTest.java @@ -0,0 +1,32 @@ +package doit.jpastudy2.Library.repository; + +import doit.jpastudy2.Library.Book; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.transaction.annotation.Transactional; + +@Transactional +@SpringBootTest +class BookRepositoryTest { + + @Autowired + BookRepository bookRepository; + + @Test + void test(){ + Book book = Book.builder() + .title("모순") + .author("양귀자") + .isbn("9788998441012") + .publisher("쓰다") + .build(); + + bookRepository.save(book); + + Book book1 = bookRepository.findByTitleAndAuthor("모순","양귀자"); + + System.out.println("Member Id = " + book1.getId()); + } + +} \ No newline at end of file diff --git a/src/test/java/doit/jpastudy2/Library/repository/MemberRepositoryTest.java b/src/test/java/doit/jpastudy2/Library/repository/MemberRepositoryTest.java new file mode 100644 index 0000000..4312e30 --- /dev/null +++ b/src/test/java/doit/jpastudy2/Library/repository/MemberRepositoryTest.java @@ -0,0 +1,36 @@ +package doit.jpastudy2.Library.repository; + +import doit.jpastudy2.Library.Member; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +import static org.junit.jupiter.api.Assertions.*; + +@Transactional +@SpringBootTest +class MemberRepositoryTest { + + @Autowired + MemberRepository memberRepository; + + @Test + void test(){ + Member member = Member.builder() + .name("문소현") + .email("sohyun22@ajou.ac.kr") + .phone("01012345678") + .joinDate(LocalDate.now()) + .build(); + + memberRepository.save(member); + + Member member1 = memberRepository.findByName("문소현"); + + System.out.println("name = " + member1.getEmail()); + } +} \ No newline at end of file From e03d256dc0e7957b3c3cbbeefa97bbc3087fed8f Mon Sep 17 00:00:00 2001 From: sohyun022 Date: Thu, 26 Sep 2024 21:44:27 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EB=AC=B8=EC=86=8C=ED=98=84=201=EC=A3=BC?= =?UTF-8?q?=EC=B0=A8=20=EA=B3=BC=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/doit/jpastudy2/Library/Book.java | 2 +- src/main/java/doit/jpastudy2/Library/Member.java | 2 +- .../doit/jpastudy2/Library/repository/BookRepositoryTest.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/doit/jpastudy2/Library/Book.java b/src/main/java/doit/jpastudy2/Library/Book.java index cf6e863..7a92747 100644 --- a/src/main/java/doit/jpastudy2/Library/Book.java +++ b/src/main/java/doit/jpastudy2/Library/Book.java @@ -15,7 +15,7 @@ public class Book { @Id @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; + private Long bookId; private String title; private String author; private String publisher; diff --git a/src/main/java/doit/jpastudy2/Library/Member.java b/src/main/java/doit/jpastudy2/Library/Member.java index ac161d5..b85cb53 100644 --- a/src/main/java/doit/jpastudy2/Library/Member.java +++ b/src/main/java/doit/jpastudy2/Library/Member.java @@ -18,7 +18,7 @@ public class Member { @Id @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; + private Long memberId; private String name; @Email private String email; diff --git a/src/test/java/doit/jpastudy2/Library/repository/BookRepositoryTest.java b/src/test/java/doit/jpastudy2/Library/repository/BookRepositoryTest.java index b8e8dcb..958fddf 100644 --- a/src/test/java/doit/jpastudy2/Library/repository/BookRepositoryTest.java +++ b/src/test/java/doit/jpastudy2/Library/repository/BookRepositoryTest.java @@ -26,7 +26,7 @@ void test(){ Book book1 = bookRepository.findByTitleAndAuthor("모순","양귀자"); - System.out.println("Member Id = " + book1.getId()); + System.out.println("Member Id = " + book1.getBookId()); } } \ No newline at end of file From e0a2eaffb800b800c610f8df583db1df999ec922 Mon Sep 17 00:00:00 2001 From: sohyun022 Date: Thu, 26 Sep 2024 22:25:40 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EB=AC=B8=EC=86=8C=ED=98=84=201=EC=A3=BC?= =?UTF-8?q?=EC=B0=A8=20=EA=B3=BC=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/doit/jpastudy2/Library/Book.java | 5 +++-- src/main/java/doit/jpastudy2/Library/Member.java | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/doit/jpastudy2/Library/Book.java b/src/main/java/doit/jpastudy2/Library/Book.java index 7a92747..0ce7b01 100644 --- a/src/main/java/doit/jpastudy2/Library/Book.java +++ b/src/main/java/doit/jpastudy2/Library/Book.java @@ -20,13 +20,14 @@ public class Book { private String author; private String publisher; private String isbn; + private char available; @Builder - public Book(String title, String author, String publisher, String isbn) { + public Book(String title, String author, String publisher, String isbn, char available) { this.title = title; this.author = author; this.publisher = publisher; this.isbn = isbn; - + this.available = available; } } diff --git a/src/main/java/doit/jpastudy2/Library/Member.java b/src/main/java/doit/jpastudy2/Library/Member.java index b85cb53..74be747 100644 --- a/src/main/java/doit/jpastudy2/Library/Member.java +++ b/src/main/java/doit/jpastudy2/Library/Member.java @@ -24,12 +24,14 @@ public class Member { private String email; private String phone; private LocalDate joinDate; + private Long borrow; @Builder - public Member(String name, String email, String phone, LocalDate joinDate) { + public Member(String name, String email, String phone, LocalDate joinDate, Long borrow) { this.name = name; this.email = email; this.phone = phone; this.joinDate = joinDate; + this.borrow = borrow; } }