유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다.
IDE : IntelliJ
언어 : Java
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
기존에 하던 MVC패턴으로하는 CRUD를 하는 방법이 아닌 JpaRepository를 이용하여 CRUD를 하는 방법을 알게 되었다.
우선 /src/main/java/com/blog/ 하위 폴더로 test 를 만들어 DummeyControllerTest.java 를 생성해준다.
그 후 insert 테스트기에 postmapping을 해주고 값을 지정해준다.
들어 오는 값을 확인해보기 위해 sysout을 해서 파라미터들을 한 번 찍어보자.
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DummeyControllerTest {
@PostMapping("/insert")
public String test(String user_id, String password, String email) {
System.out.println("userid : "+user_id);
System.out.println("password : "+password);
System.out.println("email : "+email);
return "회원가입완료";
}
그 후 src/main/java/com/blog/ 하위폴더로 repository 폴더를 하나 생성하고 UserRepository 라는 이름으로 interface를 만들어 주었다.
JpaRepository를 상속하고 <테이블명,PK의 타입>을 작성해준다.
여기서 JpaRepository에 의해 bean 등록이 되기 때문에 @Repository 어노테이션을 작성해 줄 필요가 없다.
import com.blog.table.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User,Integer> {
}
다시 DummyControllerTest로 돌아와서 UserRepository를 Autowired 를 하면 Field injection is not recommended 라는 경고문이 뜨는데 service단에 하는게 옳은 방식이기에 경고해주는거고 무시해도 된다.
이번엔 같은 postmapping이지만 파라미터를 아예 user로 받아서 사용해 보았다.
import com.blog.repository.UserRepository;
import com.blog.table.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DummeyControllerTest {
@Autowired //의존성 주입
private UserRepository userRepository;
@PostMapping("/insert")
public String test(String user_id, String password, String email) {
System.out.println("userid : "+user_id);
System.out.println("password : "+password);
System.out.println("email : "+email);
return "회원가입완료";
}
@PostMapping("/insert2")
public String test2 (User user) {
System.out.println("useremail : "+user.getEmail());
userRepository.save(user);
return "회원가입완료2";
}
}
이제 테스트를 해볼 차례이다.
post이기 때문에 postman을 사용해서 테스트를 진행해보았다.
post 확인 후 url을 잘 작성하고 body 쪽에 key 값(= class 에서 작성한 변수이름) 과 사용할 value를 입력하고 send를 눌러보면 return 으로 설정한 문자열을 볼 수 있다.
콘솔에서 확인해보면 내가 담아주었던 값들이 잘 넘어오는걸 확인할 수 있다.
이제 JpaRepository를 이용한 데이터 insert를 진행해보자.
JpaRepository를 사용한 interface의 변수명.save(class 파라미터)를 해주면 된다.
@PostMapping("/insert2")
public String test2 (User user) {
System.out.println("useremail : "+user.getEmail());
userRepository.save(user);
return "회원가입완료2";
}
postman에서 확인해보자.
mapping 한 url 주소로 바꿔서 send를 눌러주면 return 값이 잘 넘어 오는걸 확인 할 수 있다.
콘솔을 확인해보면
insert 쿼리문이 작동한걸 볼 수 있고 DBeaver를 확인해보면 데이터가 들어가있는걸 확인해 볼 수 있다.
'프로젝트 > Spring Boot 블로그프로젝트' 카테고리의 다른 글
[블로그프로젝트] 6. JpaRepository 로 데이터 update,delete 해보기 (0) | 2023.02.13 |
---|---|
[블로그프로젝트] 5. JpaRepository 로 데이터 select 해보기 (0) | 2023.02.13 |
[블로그프로젝트] 3-1. 테이블생성하기 2 (0) | 2023.02.09 |
[블로그프로젝트] 3. 테이블생성하기 (0) | 2023.02.06 |
[블로그프로젝트] 2. MySQL 연결하기 (0) | 2023.02.01 |
댓글