Wisdom기록보관소
Spring Boot JPA 사용하기 본문
Spring Boot JPA!!!! 간단하다~! 이전에 Mybatis Datasource 부분설정이 있다면 그데로 사용하면 되고
이제 가즈아~!!!!
자자 일단 쉽게 이해하기편~!
Spring을 사용하지 않았때는 String으로 쿼리문을 작성해서 각각 파라미터도 직접 넣어주느라 고생이 많았다.
그러나 JPA는 SQL을 작성해서 쓸수도 있지만 CRUD등의 기능을 이미 구현해 놨서 쿼리문을 작성을 많이 줄일수 있다.
온전히 개발자가 Object에 전념 할 수 있게 도와준다고 합니다.
단점이라면 어렵다고하는데 .... 뭐 안어려운게 없어서...
Dependency 추가
implementation 'org.springframework.boot:spring-boot-starter-data-jpa
간단하게 추가 가능합니다! 그리고 Lombok을 사용하면 더 편하게 작성가능하니 추가 해놓자~!
application.properties 설정
저는 일단 다른 설정은 해본경험이 적어서 properties에 설정하는게 편한편인데 다른 곳에서도 언급하듯 다른 설정방법들도 시도 해보고 익혀야 할듯합니다.
2020/07/27 - [Study!/SpringBoot] - Spring Boot Mybatis연동하기
여기에 datasource 부분을 그대로 썻습니다. 결국 Datasource 부분은 같은 걸 사용한다는 얘기겠지요?
Model 작성
기능은 거의 같은데 부르는 이름들이 달라서 헛갈리는데 Model, Domain, DTO, Entity 흠... 이런것들도 다른게 있는건지 좀더 공부가 필요한듯. 일단은 Model이라고 부르겠습니다.
package com.example.dependence.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import lombok.Data;
@Data
//테이블명을 명시
@Entity(name = "user")
public class JPATestModel {
@Id //primeryKey로 설정?하는부분
//AutoIncrease로 적용했기때문에 DB에 맞기는거라는데요..
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String user_id;
private String password;
private int point;
}
Column관련 설정해주는 어노테이션이 많은데 사용하게 된다면 당연 공부 필수!
Respository 작성
Mybatis에서는 Mapper, 기본적으로 Dao같은 기능을 제공해주는 클래스( 실제 구현은 다르니 Dao와는 다르다고해야하나?)
package com.example.dependence.mapper;
import java.util.List;
import com.example.dependence.model.JPATestModel;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface JPATestRepository extends JpaRepository<JPATestModel, Integer>{
public List<JPATestModel> findById(String id);
}
JpaRepository를 상속해주고 Model을 넣어주면 기본적인 CRUD는 이미 구현이 끝났다...;;;
다른 조건별 기능은 Method의 명칭으로 구현이 된다고 합니다. 요것도 신기방기!
위에 작성된 매소드가 그것~!
어노테이션과 상속으로 이렇게 간단하게 끝!
Service 작성
package com.example.dependence.service;
import com.example.dependence.mapper.JPATestRepository;
import com.example.dependence.model.JPATestModel;
import com.example.dependence.model.TestModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class JpaService {
@Autowired
private JPATestRepository repository;
public int createUser(JPATestModel model){
repository.save(model);
return 0;
}
}
특별한것은 없다 @Autowired로 위에서 만든 Repository개체를 가져와 원하는 작업을 수행하면 끝!
따로 Mapper나 외부 파일을 연결해주거나 하는 설정이 적기 때문에 시작은 쉬운것 같다.
그러나 Django와 같은 Method기반으로 호출하면 join이나 다른 복잡한 쿼리문이 필요할때 한참 찾아봐야하기도 하고
이런 부분이 어렵다고 한게 아닐까?... 아무튼 정말 간단하게 구동만 돌리는것 테스트 종료~!
'Study! > SpringBoot' 카테고리의 다른 글
SpringBoot Logging을 하자!! (0) | 2021.03.15 |
---|---|
Oauth2를 이해하고 적용해보자! (0) | 2021.03.15 |
Spring Boot JPA 사용하기 - Entity ! (0) | 2020.08.06 |
Spring Boot . Spring Security 사용하기 (0) | 2020.07.30 |
Spring Boot Mybatis연동하기 (0) | 2020.07.27 |