JDBC 프로그래밍의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있으며 안정적인 구동을 보장한다
모든 Persistence Framework는 내부적으로 JDBC API를 이용한다.
JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다.
persistence Framework는 아래와 같이 나눌 수 있다
이 persistence Framework를 사용하는 경우
기존의 JDBC만의 사용으로 쿼리문을 만들어 요청할 때 쿼리문이 조금만 길어져도 관리가 힘들거나 번거로운 부분을 개발자가 직접 JDBC Programming을 하지 않도록 기능을 제공해준다
객체(Obejct)와 SQL의 필드를 매핑하여 데이터를 객체화하는 기술
객체(Object)와 DB의 테이블을 Mapping 시켜 RDB 테이블을 객체지향적으로 사용하게 해주는 기술
RDB 테이블은 객체지향적 특성(상속, 다형성, 레퍼런스) 등이 없어서 Java와 같은 객체 지향적 언어로의 접근이 쉽지 않다.
이럴때 ORM을 사용하면 보다 객체지향적으로 RDB를 사용할 수 있다
JPA란 자바 ORM 기술에 대한 API 표준 명세를 의미한다.
JPA는 ORM을 사용하기 위한 인터페이스를 모아둔 것이며, JPA를 사용하기 위해서는 JPA를 구현한 Hibernate, EclipseLink, DataNucleus같은 ORM 프레임워크를 사용해야 한다.
자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다
라이브러리가 아닌 인터페이스이므로 특정 기능을 하진 않는다
JPA의 구현체 중 하나이며, Hibernate가 지원하는 메서드 내부에서는 JDBC API가 동작하고 있다.
참고
- https://aonee.tistory.com/59
- https://velog.io/@rladuswl/ORM%EC%9D%98-%EA%B0%9C%EB%85%90-JPA%EC%99%80-MyBatis-%EC%B0%A8%EC%9D%B4
- https://dreaming-soohyun.tistory.com/entry/JPA%EC%99%80-MyBatis%EC%9D%98-%EC%B0%A8%EC%9D%B4-ORM%EA%B3%BC-SQL-Mapper
- 장단점: https://incheol-jung.gitbook.io/docs/q-and-a/spring/jpa-vs-mybatis
- https://livenow14.tistory.com/70
- https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/
- https://velog.io/@alicesykim95/JPA-ORM-JDBC-Hibernate%EB%9E%80
- https://antstudy.tistory.com/447