SQL Mapper와 ORM은 개발자가 JDBC Programming(인간 매퍼)을 하지 않도록 기능을 제공한다.
SQL MAPPER
- Object와 SQL의 필드를 매핑하여 데이터를 객체화 하는 기술
- 객체와 테이블 간의 관계 매핑 아님
- SQL 문을 직접 작성하고 쿼리 수행 결과를 어떠한 객체에 매핑할지 바인딩하는 방법
- DBMS에 종속적인 문제
예시
- MyBatis
- SQL을 직접 작성하여 쿼리 수행 결과를 객체와 매핑
- 쿼리문을 xml로 분리 가능 → 가독성 향상
- 복잡한 쿼리문 작성 가능
- 데이터 캐싱 기능으로 성능 향상
- 객체와 쿼리문 모두 관리해야함, CRUD 메소드를 직접 다 구현해야함.
ORM
- Object와 DB 테이블을 매핑하여 테이블을 객체지향적으로 사용하게 해주는 기술
- 개발자가 반복적인 SQL을 직접 작성하지 않음
- DBMS에 종속적이지 않음
- 복잡한 쿼리의 경우 JPQL, SQL Mapper를 혼용하여 사용 가능
참고 내용