JDBC와 JPA를 모두 사용해봤기 때문에 각 특징과 차이를 대략적으로 알고있지만 좀 더 명확하게 정리해두기 위한 글이다.
JDBC는 DB에 접근할 수 있도록 Java에서 제공하는 API로서 모든 Java의 Data Access 기술의 근간이다. 따라서 모든 Persistence(영속성) Framework는 내부적으로 JDBC API를 이용하고 JDBC로도 당연히 Persistence Layer(프로그램의 아키텍처중 데이터에 영속성을 부여해주는 계층)를 구현할 수 있다.
[JDBC의 특징]
하지만 JDBC는 위와 같은 문제들로 구현에 번거로움이 있기 때문에, 주로 Persistence Framework를 이용하여 Persistence Layer를 구현한다.
Persistence Framework는 SQL Mapper와 ORM으로 나눌 수 있다.
SQL Mapper는 SQL 문장으로 직접 데이터베이스 데이터를 다루며 MyBatis와 JDBC Template 등이 있다.
ORM은 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하기 때문에 데이터베이스 데이터를 객체를 통해서 간적접으로 다루게 된다. Persistant Api라고도 하며 JPA, Hibernate 등이 있다.
참고: https://gmlwjd9405.github.io/2018/12/25/difference-jdbc-jpa-mybatis.html