이번 피드에서는 스프링 부트 환경에서 JPA 기본 사용에 대해 간단히 정리해보겠습니다.
우선 스프링 부트에서 JPA를 사용하기 위해 세팅이 필요한데요.
Dependencies 에 Spring Web, Spring Data JPA를 추가해 주면 됩니다.
그리고, 프로젝트에서 사용할 다른 Dependencies들도 개인 프로젝트에 맞게 추가해 주면 됩니다.
1. application.properties 세팅
## 프로젝트 실행 시 자동으로 DDL 생성할 것인지 결정(update : 변경이 필요한 경우 alter, 테이블이 없는 경우 create)
spring.jpa.hibernate.ddl-auto=update
## Hibernate가 동작하면서 발생하는 SQL을 포맷팅하여 출력해줌
spring.jpa.properties.hibernate.format_sql=true
## JPA처리시 발생하는 SQL을 보여줄 것인지 결정
spring.jpa.show-sql=true
2. entity 기본 구조
JPA를 사용하게되면 클래스파일이 데이터베이스의 테이블과 매칭이 되는데요.
간단히 비교해서 예를 들어보면
- MEMO TABLE(T_MEMO)
SEQ | MEMO |
- Memo.java
@Entity
@Table(name = "t_memo")
public class Memo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long seq;
@Column(length = 200, nullable = false)
private String memo;
}
T_MEMO테이블을 Memo 클래스 파일로 표현을 한것인데, 어노테이션의 의미를 살펴보면
@Entity
@Entity를 선언해 줌으로써 엔티티 클래스임을 표현하고, JPA로 관리되는 엔티티 객체라는 것을 알려줍니다.
@Table
@Table을 이용하여 어떤 테이블과 매칭이되는지 name값을 지정하여 사용합니다.
@Id
@Id 값은 테이블의 Primary Key값을 의미합니다.
@Column
@column값은 테이블의 컬럼을 의미합니다.
위와 같이 테이블을 세팅해주고, 이제 테이블에 CRUD작업을 해보면 되는데, 이때 JpaRepository를 상속받아 이용하면 된다.
public interface MemoRepository extends JpaRepository<Memo, Long> {
}
인터페이스 파일을 생성한 후, JpaRepository를 상속받아주면 되는데 여기서 <테이블의 클래스타입, @Id 타입> 을 입력해주면 된다.
이러면 모든 세팅이 끝이고 해당 인터페이스에 원하는 CRUD작업들을 추가해 주면 된다.
JpaRepository에서 제공하는 메서드들을 보면 아래와 같이 제공되는 메서드들을 이용하면 된다.
- insert : save();
- select : findById(), getOne()
- update : save();
이번 피드는 스프링 부트를 이용해서 간단히 JPA를 이용할 수 있을 정도의 피드이기 때문에 여기서 마무리 하겠습니다.
'노빠꾸 개발일지 > JAVA' 카테고리의 다른 글
메이븐(MAVEN) 프로젝트 기본 세팅해보기 - 2 (0) | 2022.09.14 |
---|---|
메이븐(MAVEN) 프로젝트 기본 세팅해보기 - 1 (0) | 2022.09.11 |
[JAVA] JSON 객체 사용법 정리(JsonObject, JsonArray) 데이터 파싱, 데이터 수정 (0) | 2022.07.09 |
[JPA] JPA(Java Persistence API) 란? (0) | 2022.04.06 |
[Design Pattern] 싱글턴 패턴 (0) | 2021.05.09 |