From 0ba7b98ef0c94d1478cdd5b0643dab4974a7c538 Mon Sep 17 00:00:00 2001 From: dayaelee Date: Sat, 3 Aug 2024 21:15:53 +0900 Subject: [PATCH 1/9] =?UTF-8?q?[8=EC=9B=94=201=EC=9D=BC=20=EC=88=99?= =?UTF-8?q?=EC=A0=9C]spring-mvc-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cholog/MemberController.java | 23 +++++++++++++++---- .../resources/static/{hi.html => index.html} | 0 .../{templates => static}/static.html | 0 3 files changed, 19 insertions(+), 4 deletions(-) rename spring-mvc-1/initial/src/main/resources/static/{hi.html => index.html} (100%) rename spring-mvc-1/initial/src/main/resources/{templates => static}/static.html (100%) diff --git a/spring-mvc-1/initial/src/main/java/cholog/MemberController.java b/spring-mvc-1/initial/src/main/java/cholog/MemberController.java index 08322a4e..3a12f651 100644 --- a/spring-mvc-1/initial/src/main/java/cholog/MemberController.java +++ b/spring-mvc-1/initial/src/main/java/cholog/MemberController.java @@ -1,18 +1,33 @@ package cholog; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; @Controller public class MemberController { - - public String world() { + @GetMapping("/hello") + public String world(@RequestParam(name = "name", required = false) String name, Model model) { // TODO: /hello 요청 시 resources/templates/static.html 페이지가 응답할 수 있도록 설정하세요. // TODO: 쿼리 파라미터로 name 요청이 들어왔을 때 해당 값을 hello.html에서 사용할 수 있도록 하세요. - return null; + if (name == null){ + // 쿼리 파라미터가 없는 경우 + return "static"; + } else { + // 쿼리 파라미터가 있는 경우 + model.addAttribute("name", name); + return "hello"; + } + + } + @GetMapping("/json") + @ResponseBody public Person json() { // TODO: /json 요청 시 {"name": "brown", "age": 20} 데이터를 응답할 수 있도록 설정하세요. - return null; + return new Person("brown", 20); } } diff --git a/spring-mvc-1/initial/src/main/resources/static/hi.html b/spring-mvc-1/initial/src/main/resources/static/index.html similarity index 100% rename from spring-mvc-1/initial/src/main/resources/static/hi.html rename to spring-mvc-1/initial/src/main/resources/static/index.html diff --git a/spring-mvc-1/initial/src/main/resources/templates/static.html b/spring-mvc-1/initial/src/main/resources/static/static.html similarity index 100% rename from spring-mvc-1/initial/src/main/resources/templates/static.html rename to spring-mvc-1/initial/src/main/resources/static/static.html From 257d8a7528ca091d0a2542eeea3aae681bea82bc Mon Sep 17 00:00:00 2001 From: "DESKTOP-J6GSER3\\user" Date: Mon, 5 Aug 2024 18:35:07 +0900 Subject: [PATCH 2/9] =?UTF-8?q?[spring-mvc-1]=20ivy.lee(=EC=9D=B4=EB=8B=A4?= =?UTF-8?q?=EC=98=88)=20=EA=B3=BC=EC=A0=9C=20=EC=A0=9C=EC=B6=9C=ED=95=A9?= =?UTF-8?q?=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spring-mvc-1/initial/src/main/java/cholog/MemberController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-mvc-1/initial/src/main/java/cholog/MemberController.java b/spring-mvc-1/initial/src/main/java/cholog/MemberController.java index 3a12f651..0a8199d8 100644 --- a/spring-mvc-1/initial/src/main/java/cholog/MemberController.java +++ b/spring-mvc-1/initial/src/main/java/cholog/MemberController.java @@ -16,7 +16,7 @@ public String world(@RequestParam(name = "name", required = false) String name, // 쿼리 파라미터가 없는 경우 return "static"; } else { - // 쿼리 파라미터가 있는 경우 + // 쿼리 파라미터가 있는 경우. model.addAttribute("name", name); return "hello"; } From 18c9ca4830463f3123e90d52533b449012173af7 Mon Sep 17 00:00:00 2001 From: "DESKTOP-J6GSER3\\user" Date: Mon, 5 Aug 2024 21:25:58 +0900 Subject: [PATCH 3/9] =?UTF-8?q?[spring-mvc-2]=20ivy.lee(=EC=9D=B4=EB=8B=A4?= =?UTF-8?q?=EC=98=88)=20=EA=B3=BC=EC=A0=9C=20=EC=A0=9C=EC=B6=9C=ED=95=A9?= =?UTF-8?q?=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cholog/MemberController.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/spring-mvc-2/initial/src/main/java/cholog/MemberController.java b/spring-mvc-2/initial/src/main/java/cholog/MemberController.java index 5a380e7a..927d98a4 100644 --- a/spring-mvc-2/initial/src/main/java/cholog/MemberController.java +++ b/spring-mvc-2/initial/src/main/java/cholog/MemberController.java @@ -5,12 +5,11 @@ import java.util.List; import java.util.Objects; import java.util.concurrent.atomic.AtomicLong; + +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.*; @Controller public class MemberController { @@ -19,9 +18,9 @@ public class MemberController { private final AtomicLong index = new AtomicLong(1); @PostMapping("/members") - public ResponseEntity create() { + public ResponseEntity create(@RequestBody Member member) { // TODO: member 정보를 받아서 생성한다. - Member newMember = Member.toEntity(null, index.getAndIncrement()); + Member newMember = Member.toEntity(member, index.getAndIncrement()); members.add(newMember); return ResponseEntity.created(URI.create("/members/" + newMember.getId())).build(); } @@ -29,31 +28,32 @@ public ResponseEntity create() { @GetMapping("/members") public ResponseEntity> read() { // TODO: 저장된 모든 member 정보를 반환한다. - return null; + return new ResponseEntity<>(members, HttpStatus.OK); } @PutMapping("/members/{id}") - public ResponseEntity update() { + public ResponseEntity update(@PathVariable Long id, @RequestBody Member newMember) { // TODO: member의 수정 정보와 url 상의 id 정보를 받아 member 정보를 수정한다. Member member = members.stream() - .filter(it -> Objects.equals(it.getId(), null)) + .filter(it -> Objects.equals(it.getId(), id)) .findFirst() .orElseThrow(RuntimeException::new); - member.update(null); + member.update(newMember); + //return new ResponseEntity<>(null, HttpStatus.NO_CONTENT); 이건 왜 안되는지? return null; } @DeleteMapping("/members/{id}") - public ResponseEntity delete() { + public ResponseEntity delete(@PathVariable Long id) { // TODO: url 상의 id 정보를 받아 member를 삭제한다. Member member = members.stream() - .filter(it -> Objects.equals(it.getId(), null)) + .filter(it -> Objects.equals(it.getId(), id)) .findFirst() .orElseThrow(RuntimeException::new); members.remove(member); - return null; + return new ResponseEntity<>(HttpStatus.NO_CONTENT); } } From 864e62213211c3ba3247a1a4b2ff5460d8f15402 Mon Sep 17 00:00:00 2001 From: "DESKTOP-J6GSER3\\user" Date: Thu, 29 Aug 2024 16:38:30 +0900 Subject: [PATCH 4/9] =?UTF-8?q?Feat:2.=20=EB=8B=A4=EB=8C=80=EC=9D=BC=20?= =?UTF-8?q?=EB=8B=A8=EB=B0=A9=ED=96=A5,=20cholog.Book=20=EC=9D=84=20?= =?UTF-8?q?=EC=9D=B4=EC=9A=A9=ED=95=98=EC=97=AC=20=ED=95=99=EC=8A=B5=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=A5=BC=20=EC=84=B1=EA=B3=B5?= =?UTF-8?q?=EC=8B=9C=ED=82=A4=EA=B8=B0,=20@ManyToOne=20=EC=96=B4=EB=85=B8?= =?UTF-8?q?=ED=85=8C=EC=9D=B4=EC=85=98=EC=9D=84=20=ED=99=9C=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Book.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Book.java b/spring-data-jpa-2/initial/src/main/java/cholog/Book.java index 6f119218..78c52bdb 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Book.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Book.java @@ -1,9 +1,6 @@ package cholog; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; import java.util.Set; @@ -14,11 +11,16 @@ public class Book { private Long id; private String name; + @ManyToOne + private Publisher publisher; + public Book() { } public Book(String name, Publisher publisher) { + this.name = name; + this.publisher = publisher; } public Long getId() { @@ -30,7 +32,7 @@ public String getName() { } public Publisher getPublisher() { - return null; + return publisher; } public Set getAuthors() { From c1a0cb8cb3ea92911e1388a9eaf6384f042e6a01 Mon Sep 17 00:00:00 2001 From: "DESKTOP-J6GSER3\\user" Date: Thu, 29 Aug 2024 17:36:52 +0900 Subject: [PATCH 5/9] =?UTF-8?q?Feat:3.=20=EB=8B=A4=EB=8C=80=EC=9D=BC=20?= =?UTF-8?q?=EC=96=91=EB=B0=A9=ED=96=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Publisher.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java b/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java index b0c6303e..06ab4b12 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Publisher.java @@ -1,9 +1,6 @@ package cholog; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; import java.util.Set; @@ -14,6 +11,12 @@ public class Publisher { private Long id; private String name; + @OneToMany(mappedBy="publisher") + Set books; + + @ManyToOne + Publisher publisher; + public Publisher(String name) { this.name = name; } @@ -34,6 +37,6 @@ public void addBook(Book book) { } public Set getBooks() { - return null; + return books; } } From 918621e35dbaebdffc8eb42060c22717ab3bc464 Mon Sep 17 00:00:00 2001 From: "DESKTOP-J6GSER3\\user" Date: Thu, 29 Aug 2024 17:41:58 +0900 Subject: [PATCH 6/9] =?UTF-8?q?Feat:4.=20=EC=9D=BC=EB=8C=80=EC=9D=BC=20?= =?UTF-8?q?=EB=8B=A8=EB=B0=A9=ED=96=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Author.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Author.java b/spring-data-jpa-2/initial/src/main/java/cholog/Author.java index 937debe1..38fb833e 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Author.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Author.java @@ -1,9 +1,6 @@ package cholog; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; @Entity public class Author { @@ -11,7 +8,11 @@ public class Author { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @OneToOne + private Person person; + public Author(Person person) { + this.person = person; } public Author() { @@ -22,6 +23,6 @@ public Long getId() { } public Person getPerson() { - return null; + return person; } } From 7b889466d4d374d650acdd6b2dabef22b4f1ba7f Mon Sep 17 00:00:00 2001 From: "DESKTOP-J6GSER3\\user" Date: Thu, 29 Aug 2024 17:49:23 +0900 Subject: [PATCH 7/9] =?UTF-8?q?Feat:5.=20=EC=9D=BC=EB=8C=80=EC=9D=BC=20?= =?UTF-8?q?=EC=96=91=EB=B0=A9=ED=96=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Person.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Person.java b/spring-data-jpa-2/initial/src/main/java/cholog/Person.java index 6cf1d009..3bb9af8b 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Person.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Person.java @@ -1,9 +1,6 @@ package cholog; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; @Entity public class Person { @@ -12,6 +9,9 @@ public class Person { private Long id; private String name; + @OneToOne(mappedBy = "person") + private Author author; + public Person() { } @@ -29,6 +29,6 @@ public String getName() { } public Author getAuthor() { - return null; + return author; } } From 02f074eea1c4acc92217f71e2366365d84403e32 Mon Sep 17 00:00:00 2001 From: "DESKTOP-J6GSER3\\user" Date: Thu, 29 Aug 2024 18:00:04 +0900 Subject: [PATCH 8/9] =?UTF-8?q?6.=20=EB=8B=A4=EB=8C=80=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initial/src/main/java/cholog/Author.java | 8 ++++++++ .../initial/src/main/java/cholog/Book.java | 3 +++ .../initial/src/main/java/cholog/BookAuthor.java | 14 ++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Author.java b/spring-data-jpa-2/initial/src/main/java/cholog/Author.java index 38fb833e..eb746f0a 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Author.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Author.java @@ -2,6 +2,8 @@ import jakarta.persistence.*; +import java.util.Set; + @Entity public class Author { @Id @@ -11,6 +13,12 @@ public class Author { @OneToOne private Person person; + @OneToMany(mappedBy = "author") + Set books; + +// @ManyToMany(mappedBy = "authors") +// Set books; + public Author(Person person) { this.person = person; } diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/Book.java b/spring-data-jpa-2/initial/src/main/java/cholog/Book.java index 78c52bdb..842447e3 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/Book.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/Book.java @@ -14,6 +14,9 @@ public class Book { @ManyToOne private Publisher publisher; + @OneToMany(mappedBy="book") + Set authors; + public Book() { } diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java b/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java index 4d9c8d73..f708513b 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java @@ -1,6 +1,20 @@ package cholog; +import jakarta.persistence.*; + +@Entity public class BookAuthor { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + private Book book; + + @ManyToOne + private Author author; + + public BookAuthor(Book book, Author author) { } From b5e940b9a87143b4dae7c5062fc5812ffadb8c4d Mon Sep 17 00:00:00 2001 From: "DESKTOP-J6GSER3\\user" Date: Thu, 29 Aug 2024 18:01:23 +0900 Subject: [PATCH 9/9] =?UTF-8?q?Feat:6.=20=EB=8B=A4=EB=8C=80=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java | 1 - 1 file changed, 1 deletion(-) diff --git a/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java b/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java index f708513b..392b62e7 100644 --- a/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java +++ b/spring-data-jpa-2/initial/src/main/java/cholog/BookAuthor.java @@ -14,7 +14,6 @@ public class BookAuthor { @ManyToOne private Author author; - public BookAuthor(Book book, Author author) { }