join 기능을하는 controller 생성하기
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DummyControllerTest {
// http://localhost:8080/dummy/join (요청)
// http의 body에 username, password, email 데이터를 가지고 (요청)
@PostMapping("/dummy/join")
public String join(String username, String password, String email) {
System.out.println("username: "+username);
System.out.println("password: "+password);
System.out.println("email: "+email);
return "회원 가입이 완료되었습니다";
}
}
import com.example.goormblog.model.User;
import com.example.goormblog.repository.UserRepository;
@RestController
public class DummyControllerTest {
@Autowired // 의존성 주입 (DI)
private UserRepository userRepository;
// http://localhost:8080/dummy/join2 (요청)
@PostMapping("/dummy/join2")
public String join2(User user) {
System.out.println("id: "+user.getId());
System.out.println("username: "+user.getUsername());
System.out.println("password: "+user.getPassword());
System.out.println("email: "+user.getEmail());
// System.out.println("role: "+user.get());
System.out.println("createDate: "+user.getCreateDate());
// 내용 삽입하는 코드
userRepository.save(user);
return "회원 가입이 완료되었습니다";
}
}
"userRepository.save(user)" 코드를 이용해 DB에 내용을 삽입할 수 있다.
Entity에 의해 생성된 DB에 접근하는 메서드(ex) findAll()) 들을 사용하기 위한 인터페이스.
엔티티를 선언해 생성된 데이터베이스에 어떤 값을 넣거나, 넣어진 값을 조회하는 등의 CRUD(Create, Read, Update, Delete)를 정의하는 계층
import com.example.goormblog.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
// DAO
// 자동으로 bean 등록이 된다.
// @Repository // 생략 가능.
public interface UserRepository extends JpaRepository<User, Integer> { }
public enum RoleType {
USER, ADMIN
}
// DB는 RoleType이 없다.
// @ColumnDefault("'user'")
@Enumerated(EnumType.STRING)
private RoleType role; // Enum 사용 권고: admin, user, manager
@PostMapping("/dummy/join2")
public String join2(User user) {
System.out.println("id: "+user.getId());
System.out.println("username: "+user.getUsername());
System.out.println("password: "+user.getPassword());
System.out.println("email: "+user.getEmail());
// System.out.println("role: "+user.get());
System.out.println("createDate: "+user.getCreateDate());
// enum 추가 내용
user.setRole(RoleType.USER);
// 내용 삽입하는 코드
userRepository.save(user);
return "회원 가입이 완료되었습니다";
}