JPA와 JDBC

pudding·2023년 2월 5일
0

JDBC와 JPA를 모두 사용해봤기 때문에 각 특징과 차이를 대략적으로 알고있지만 좀 더 명확하게 정리해두기 위한 글이다.

JDBC

JDBC는 DB에 접근할 수 있도록 Java에서 제공하는 API로서 모든 Java의 Data Access 기술의 근간이다. 따라서 모든 Persistence(영속성) Framework는 내부적으로 JDBC API를 이용하고 JDBC로도 당연히 Persistence Layer(프로그램의 아키텍처중 데이터에 영속성을 부여해주는 계층)를 구현할 수 있다.

[JDBC의 특징]

  • connection 객체를 수동으로 열고 닫아줘야 한다.
  • SQL query문을 직접 작성해주어야 함
  • sql을 PreparedStatement 객체를 통해 주입해주고, rsultSet 객체를 통해 결과 값을 받아온다.
  • 트랜잭션 처리와 예외 처리를 모두 직접 해주어야 함
  • 이 모든 작업을 반복해야 함

하지만 JDBC는 위와 같은 문제들로 구현에 번거로움이 있기 때문에, 주로 Persistence Framework를 이용하여 Persistence Layer를 구현한다.

JPA

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

profile
영차 영차 개발 공부 기록 하기

0개의 댓글