KSI일기장
231031 JPA 이론 본문
ORM
- Object-Relational Mapping (객체와 관계형데이터베이스 매핑, 객체와 DB의 테이블이 매핑을 이루는 것)
- 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 이다.
- 프로그램의 복잡도를 줄이고 자바 객체와 쿼리를 분리할 수 있으며 트랜잭션 처리나 기타 데이터베이스 관련 작업들을 좀 더 편리하게 처리할 수 있는 방법
- SQL Query가 아닌 직관적인 코드(메서드)로서 데이터를 조작할 수 있다.
ex) 기존쿼리 : SELECT * FROM MEMBER; 이를 ORM을 사용하면 Member테이블과 매핑된 객체가 member라고 할 때, member.findAll()이라는 메서드 호출로 데이터 조회가 가능하다.
JPA
- Java Persistence API (자바 ORM 기술에 대한 API 표준 명세)
- 한마디로 ORM을 사용하기 위한 인터페이스를 모아둔 것 이라고 볼 수 있다.
- 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.
- ORM에 대한 자바 API 규격이며 Hibernate, OpenJPA 등이 JPA를 구현한 구현체 이다. (ORM을 사용하기 위한 인터페이스를 모아둔 것)
- Hibernate 이외에도 EcipseLink, DataNucleus, OpenJPA, TopLink 등이 있습니다.
※결국 인터페이스이기 때문에 JPA를 사용하기 위해서는 JPA를 구현한 Hibernate, EclipseLink, DataNucleus 같은 ORM 프레임워크를 사용해야 한다.
Hibernate
- JPA를 사용하기 위해서 JPA를 구현한 ORM 프레임워크중 하나.
(자바를 위한 오픈소스 ORM(Object-relational mapping) 프레임워크를 제공한다.)
- Hibernate는 JPA 명세의 구현체이다. javax.persistence.EntityManager와 같은 JPA의 인터페이스를 직접 구현한 라이브러리이다.
@Entity
- @Entity가 붙은 클래스는 JPA가 관리하는 것으로 테이블과의 매핑
-속성 name: JPA에서 사용할 엔티티 이름을 지정, 보통 기본값인 클래스 이름을 사용한다.
-주의: 기본 생성자는 필수 (JPA가 엔티티 객체 생성 시 기본 생성자를 사용)
-Entity란 데이터베이스에 저장하기 위해 유저가 정의한 클래스입니다.(RDBMS에서 Table의 정의같은것, Table이름이나 칼럼들에 대한 정보를 가져온다.)
Entity 설정이 끝나면 메소드처럼 사용할 수 있다. 예를 들어 findId.() 처럼 사용 가능
쿼리문 작성 안해도 된다. 대신 조회만 가능하고 Insert나 Update 하려면 Dto 생성 후 사용 가능
'Spring' 카테고리의 다른 글
SpringBoot 기초1 인텔리제이 스프링부트 설치 (0) | 2023.10.31 |
---|---|
231031 ModelAndView, Model (0) | 2023.10.31 |
spring initfilter, dofilter 생성 (0) | 2023.08.29 |
scope종류(page,request,session,application)와범위 (0) | 2023.06.29 |
0515spring 웹소켓(WebSocket) 이용한 채팅(Chatting) (0) | 2023.05.15 |