Back-End/Java

JPA와 MyBatis의 차이를 알아보자

CJun 2021. 7. 1. 00:04
반응형
JPA (Java Persistence API) 란 ?
JPA는 자바 진영의 ORM (Object Relational Mapping) 기술 표준이다. 여기서 ORM는 객체와 관계형 DB를 매핑하는 것인데 ORM을 사용하게 된다면 객체를 마치 자바 컬렉션에 저장할 수 있고 적절한 SQL을 생성하여 DB에 객체를 저장해준다.

 

JPA (Java Persistence API) 장점

RDB에 종류와 상관없이 사용이 가능하다.
DB 변경 및 코드 재활용에 편리하다.
테이블 변경 및 생성 등 엔티티 관리가 편리하다.
Create, Read, Update, Delete 쿼리를 자동으로 생성해준다.

 

JPA (Java Persistence API) 단점

단방향, 양방향 임베디드 관계 등을 이해해야하므로 처음에는 어렵다.
복잡한 쿼리 작성이 어렵다

 


MyBatis 란 ?
MyBatis란 자바 오브젝트와 SQL 사이의 자동 매핑 기능을 지원하는 프레임 워크이다. 그래서 MyBatis는 SQL을 별도의 파일로 분리해서 관리하게 해주어 아직까지 인기가 많은 기술이다.

 

MyBatis 장점

JPA 보다 쉽다.
SQL의 세부적인 내용을 변경할때는 간편하다.
동적 쿼리 사용한다면 JPA보다 간편하게 구현 할 수 있다.

 

MyBatis 단점

데이터 베이스 설정 변경시에 수정할 부분이 많다.
Mapper 작성부터 인터페이스 설계까지 JPA보다 많은 파일과 로직들이 필요하다.
특정 DB에 종속적이다.
반복적인 작업이 될 수 있다.
반응형