SQL Mapper and ORM

SQL Mapper 란?

  • 객체로 SQL 쿼리를 할 수 있으며, 객체의 값을 쿼리문에 바인딩 가능하다. (예: 객체의 id 값을, 쿼리 where 절에 바인딩)

  • 쿼리의 결과 값을 객체에 맵핑 할 수 있다.

ORM (Object Relational Mapping)

  • 말 그대로, 객체를 관계형 데이터베이스의 테이블과 직접 맵핑함.

    • 다시 말해 객체를 테이블로 만들고, 객체의 값 변경 시 테이블의 값도 같이 변경 됨.

  • 쿼리를 동적으로 생성함. (우리는 객체에 상태에 따라 쿼리를 다르게 만들어야 하기 때문)

둘의 차이점

  • SQL Mapper는 개발자가 직접 쿼리문 작성해야함.

    • 당연히 DB가 바뀌어도 직접 다 바꿔야함.

    • 직접 치다보니 복잡한 쿼리문은 더 편하다고 하지만 ORM 기술 중 JPA 도 해당 기능 제공함

  • ORM 은 SQL 안쳐도 됨. (아예 안치는건 아님, 복잡한건 쳐야된다고 들음)

    • 당연히 DB가 바뀌어도 해당 DB 에 맞게 쿼리문 작성함.

ORM 대표기술

  • JPA, 하이버네이트, 이클립스 링크 등이 있음

  • JPA 는 자바 진영의 ORM 표준 인터페이스임

    • JPA 구현체 중에서 하이버네이트와 이클립스링크 등이 있음

사진1

#중요

결국 뭐가 됐던 내부에선 JDBC 를 다 사용함.
그렇기 때문에 백엔드 개발자라면 무조건 JDBC를 잘 알아야함.

Last updated