이숭간 공부기록
JPA란? 본문
728x90
자바와 데이터베이스의 중간단계역할의 변천과정(?)
순수JDBC -> JDBC템플릿 -> JPA (MyBatis랑 같은선상)
JPA는 개발자가 직접 작성해야하는 SQL쿼리도 자동으로 해주기때문에 개발생산성이 매우 높아짐.
객체를 JPA에 넣으면 JPA가 중간에서 디비에 sql날리고 데이터가져고오고 하는것을 알아서 처리해준다.
JPQL = 테이블을 보고 질의를 날리는게 아니라 객체를 대상으로 쿼리를 날리면 SQL로 번역됨
JPA는 인터페이스고 각 구현체는 여러가지가 있다. 대표적인게 Hibernate!
JPA는 객체와 ORM이라고 표현할수있는데 ORM은 객체와 관계형디비를 매핑해준다는 뜻이다.
이때 매핑은 어노테이션을 통해서 한다.
@Entity
JPA가 관리하는 엔티티가 되는것
@Id
얘는 PK다
@GneratedValue(strategy = GenerationType.IDENTITY)
쿼리에 id를 넣는게아니고 디비가 자동으로 id를 생성해주는것을 보고 identity전략이라고 부른다.
@Column(name = "username")
디비에 있는 username이라는 컬럼과 매핑됨
JPA는 EntityManager로 모든걸 관리(?)하는데 그래들에서 JPA라이브러리 받고나면 스프링부트가 자동으로 알아서 엔티티매니저를 만들어줌 -> 우리는 그걸로 인젝션만 해주면됨
'공부공부 > Spring Boot' 카테고리의 다른 글
[Spring] DAO(=Repository), DTO(VO) 란? (0) | 2021.05.22 |
---|---|
[Spring] 오브젝트와 의존관계 (1) | 2021.05.16 |
[Spring] 스프링 빈(Bean)이란? (0) | 2021.05.16 |
[Spring] Sprign Data JPA (JpaRepository) (0) | 2021.05.12 |
스프링부트 입문_ 회원관리 (백엔드 개발) (0) | 2021.03.13 |