From e6cc6e6cb3c18ea5d21db343f21f04d2365aca78 Mon Sep 17 00:00:00 2001 From: Kim na young Date: Sun, 27 Oct 2024 23:07:43 +0900 Subject: [PATCH 1/4] hw3-1 --- .../springhw31/controller/UserController.java | 17 ++++++++++- .../com/example/springhw31/entity/User.java | 14 ++++++++++ .../springhw31/repository/UserRepository.java | 7 ++++- .../springhw31/service/UserService.java | 28 +++++++++++++++++++ src/main/resources/application.yml | 6 ++-- 5 files changed, 67 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/example/springhw31/controller/UserController.java b/src/main/java/com/example/springhw31/controller/UserController.java index 7eca68b..8d8b6e6 100644 --- a/src/main/java/com/example/springhw31/controller/UserController.java +++ b/src/main/java/com/example/springhw31/controller/UserController.java @@ -1,16 +1,31 @@ package com.example.springhw31.controller; import com.example.springhw31.dto.UserDto; +import com.example.springhw31.service.UserService; +import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; /** * 회원가입 메서드처럼 UserDto를 파라미터로 받아주세요 */ - +@RestController +@RequiredArgsConstructor public class UserController { + private final UserService userService; + // 회원 가입 + @PostMapping("/join") public UserDto join(@ModelAttribute UserDto userDto) { + return userService.join(userDto); + } + // 로그인 + @PostMapping("/login") + public String login(@ModelAttribute UserDto userDto) { + return userService.login(userDto); } } diff --git a/src/main/java/com/example/springhw31/entity/User.java b/src/main/java/com/example/springhw31/entity/User.java index 4e957cc..04ee401 100644 --- a/src/main/java/com/example/springhw31/entity/User.java +++ b/src/main/java/com/example/springhw31/entity/User.java @@ -1,14 +1,28 @@ package com.example.springhw31.entity; +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + /** * TODO: 완성된 코드 아닙니다~ */ +@Entity +@Getter +@Setter public class User { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + @Column(nullable = false) private String username; + @Column(nullable = false) private String password; + @Column(nullable = false) private String nickname; } diff --git a/src/main/java/com/example/springhw31/repository/UserRepository.java b/src/main/java/com/example/springhw31/repository/UserRepository.java index 53778ec..1722633 100644 --- a/src/main/java/com/example/springhw31/repository/UserRepository.java +++ b/src/main/java/com/example/springhw31/repository/UserRepository.java @@ -1,5 +1,10 @@ package com.example.springhw31.repository; -public class UserRepository { +import com.example.springhw31.entity.User; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserRepository extends JpaRepository { + + User findByUsername(String username); } diff --git a/src/main/java/com/example/springhw31/service/UserService.java b/src/main/java/com/example/springhw31/service/UserService.java index c3e8928..ae4d0fc 100644 --- a/src/main/java/com/example/springhw31/service/UserService.java +++ b/src/main/java/com/example/springhw31/service/UserService.java @@ -1,14 +1,42 @@ package com.example.springhw31.service; import com.example.springhw31.dto.UserDto; +import com.example.springhw31.entity.User; +import com.example.springhw31.repository.UserRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Optional; /** * Controller에 반환할 때도 DTO 객체를 반환합니다. */ +@Service +@RequiredArgsConstructor public class UserService { + private final UserRepository userRepository; + + // 회원 가입 public UserDto join(UserDto userDto) { + User user = new User(); + user.setUsername(userDto.getUsername()); + user.setPassword(userDto.getPassword()); + user.setNickname(userDto.getNickname()); + userRepository.save(user); + + return userDto; } + // 로그인 + public String login(UserDto userDto) { + User user = userRepository.findByUsername(userDto.getUsername()); + if (user != null) { + if (user.getPassword().equals(userDto.getPassword())) { + return user.getNickname() + "님, 환영합니다!!"; + } + } + return "아이디 및 비밀번호가 일치하지 않습니다."; + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 9b78d0c..4676750 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,8 +1,8 @@ spring: datasource: - url: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8 - username: your_username - password: your_password + url: jdbc:mysql://localhost:3306/spring_study?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8 + username: root + password: kimna04! driver-class-name: com.mysql.cj.jdbc.Driver jpa: From b3b7520995f17720d67c7f4c8b7ed10fdc70e494 Mon Sep 17 00:00:00 2001 From: Kim na young Date: Sun, 27 Oct 2024 23:09:39 +0900 Subject: [PATCH 2/4] hw3-1 --- .../com/example/springhw31/controller/UserController.java | 3 --- src/main/java/com/example/springhw31/entity/User.java | 3 --- .../java/com/example/springhw31/service/UserService.java | 5 ----- 3 files changed, 11 deletions(-) diff --git a/src/main/java/com/example/springhw31/controller/UserController.java b/src/main/java/com/example/springhw31/controller/UserController.java index 8d8b6e6..1f503b0 100644 --- a/src/main/java/com/example/springhw31/controller/UserController.java +++ b/src/main/java/com/example/springhw31/controller/UserController.java @@ -8,9 +8,6 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -/** - * 회원가입 메서드처럼 UserDto를 파라미터로 받아주세요 - */ @RestController @RequiredArgsConstructor public class UserController { diff --git a/src/main/java/com/example/springhw31/entity/User.java b/src/main/java/com/example/springhw31/entity/User.java index 04ee401..c58402b 100644 --- a/src/main/java/com/example/springhw31/entity/User.java +++ b/src/main/java/com/example/springhw31/entity/User.java @@ -5,9 +5,6 @@ import lombok.Getter; import lombok.Setter; -/** - * TODO: 완성된 코드 아닙니다~ - */ @Entity @Getter @Setter diff --git a/src/main/java/com/example/springhw31/service/UserService.java b/src/main/java/com/example/springhw31/service/UserService.java index ae4d0fc..5ba0a5f 100644 --- a/src/main/java/com/example/springhw31/service/UserService.java +++ b/src/main/java/com/example/springhw31/service/UserService.java @@ -6,11 +6,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import java.util.Optional; - -/** - * Controller에 반환할 때도 DTO 객체를 반환합니다. - */ @Service @RequiredArgsConstructor public class UserService { From dabdad20956ffa9a182f9c64915c2c012d2adc53 Mon Sep 17 00:00:00 2001 From: Kim na young Date: Mon, 28 Oct 2024 23:17:49 +0900 Subject: [PATCH 3/4] hw3-1-1 --- src/main/java/com/example/springhw31/entity/User.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/springhw31/entity/User.java b/src/main/java/com/example/springhw31/entity/User.java index c58402b..65c47a5 100644 --- a/src/main/java/com/example/springhw31/entity/User.java +++ b/src/main/java/com/example/springhw31/entity/User.java @@ -14,10 +14,10 @@ public class User { @GeneratedValue(strategy = GenerationType.AUTO) private Long id; - @Column(nullable = false) + @Column(nullable = false, unique = true) private String username; - @Column(nullable = false) + @Column(nullable = false, unique = true) private String password; @Column(nullable = false) From f8becacaca8d21ccdfa374873a59f0a94915c59b Mon Sep 17 00:00:00 2001 From: Kim na young Date: Tue, 29 Oct 2024 10:37:43 +0900 Subject: [PATCH 4/4] hw3-1-2 --- src/main/java/com/example/springhw31/entity/User.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/springhw31/entity/User.java b/src/main/java/com/example/springhw31/entity/User.java index 65c47a5..d2d51f9 100644 --- a/src/main/java/com/example/springhw31/entity/User.java +++ b/src/main/java/com/example/springhw31/entity/User.java @@ -17,9 +17,9 @@ public class User { @Column(nullable = false, unique = true) private String username; - @Column(nullable = false, unique = true) + @Column(nullable = false) private String password; - @Column(nullable = false) + @Column(nullable = false, unique = true) private String nickname; }