MyBatis와 JPA는 비슷하지만 다르다. MyBatis는 SQL Builder 또는 SQL Mapper의 한종류로 분류되고, JPA는 ORM기술로 분류되기 때문이다. SQL Mapper는 Object와 SQL의 필드를 매핑하여 데이터를 객체화 하는 기술을 뜻하고, ORM은 Object와 DB테이블을 매핑하여 데이터를 객체화하는 기술을 뜻한다.
데이터들이 프로그램이 프로그램 종료 후에도 특정한 장소에 저장되는 개념을 영속성(Persistence)이라 하는데, SQL Mapper와 ORM은 개발자가 직접 JDBC 매핑작업을 일일히 하지 않도록 기능제공하는 Persistence Framework다.
- SQLMapper
객체와 테이블 간의 관계를 매핑하는 것이 아니라 SQL문을 직접 작성하고 쿼리 수행 결과를 어떠한 객체에 매핑할지 바인딩 하는 방법이다. DBMS에 종속적이다.
- ORM
개발자가 반복적인 SQL을 직접 작성하지 않고, DBMS에 종속적이지 않다.
복잡한 쿼리의 경우 JPQL을 사용하거나 SQL Mapper을 혼용하여 사용 가능하다.
Java ORM(object-relational mapping)기술에 대한 API 표준 명세
규현체로 Hibernate, EclipseLink, Data Nucleus가 있다
자바에서 SQL Mapper를 지원해주는 프레임워크. SQL실행 결과를 자바빈즈 또는 MAP객체에 매핑해주는 Persistence 솔루션으로 관리. SQL을 소스가 아닌 XML로 분리.