JpaRepository 이제 DB에 insert하기 위해 프로그램을 작성해볼 것이다! 먼저 com.cos.blog 패키지 하위에 repository 라는 폴더를 만들자. 그리고 그 안에 UserRepository 인터페이스를 만들자. 이 인터페이스는 DB 저장소에 update할 메소드를 제공한다.
1 2 3 4 5 6 7 8 9 10 package com.cos.blog.repository;import com.cos.blog.model.User;import org.springframework.data.jpa.repository.JpaRepository;public interface UserRepository extends JpaRepository <User , Integer > { }
JpaRepository<\User, Integer> : <\해당 테이블, 그 테이블의 기본키 객체 형> 이렇게 JpaRepository를 상속해서 만들면 CRUD에 해당하는 메소드를 이용할 수 있다. 그리고 이렇게 처리를 하면 bean으로 자동으로 등록된다!
실제로 잘 되는지 한번 테스트 해보자.
Insert 테스트 우리는 dummyDataController를 만들어 우리가 만든 레포지토리 인터페이스를 실험해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 package com.cos.blog.test;import com.cos.blog.model.RoleType;import com.cos.blog.model.User;import com.cos.blog.repository.UserRepository;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 { @Autowired private UserRepository userRepository; @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 "회원가입이 완료 되었습니다!" ; } @PostMapping("/dummy/join2") public String join2 (User user) { System.out.println("role: " +user.getRole()); System.out.println("username: " +user.getUsername()); System.out.println("password: " +user.getPassword()); System.out.println("email: " +user.getEmail()); System.out.println("createDate: " +user.getCreateDate()); user.setRole(RoleType.USER); userRepository.save(user); return "회원가입이 완료 되었습니다!" ; } }
@Autowired : 이 어노테이션이 담긴 클래스가 메모리에 올라가면, 이 어노테이션 밑 변수에 형에 맞는 객체를 주입(DI ) 이 어노테이션을 통해 저장소 객체를 변수에 할당할 수 있다. 그리고 테이블 객체를 save 메소드로 DB에 저장할 수 있다!