본문 바로가기
Development/JAVA & Spring

JDBC, MyBatis, JPA 의 차이

by 최호희 2023. 12. 4.

들어가며,

JDBC, MyBatis , JPA 이름은 들어보았다. 모두 데이터베이스와 상호작용하는 거 같은데...

뭐가 달라서 이름을 다르게 부르는지 궁금해졌다. 그래서 이번에는 이 세가지를 간단히 정리해보겠다.


JDBC 

JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다. JDBC를 사용하면 SQL 쿼리를 실행하고 데이터베이스와 상호작용할 수 있다.

출처: 위키백과
출처: 위키백과


MyBatis

MyBatis를 사용하면  DB를 쉽게 다룰 수 있다.

예시) preparedstatement처럼 쿼리문을 복잡하게 입력하지 않고 실제 쿼리문과 유사하게 작성할 수 있다

.preparedstatement : "UPDATE users SET name =?, email =? WHERE id =?"

MyBatis : UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id}

MyBatis의 또 하나의 장점은 동적 쿼리 작성이 가능하다.

MyBatis 사용 방법순서 : 의존성 설정 -> DB 설정 -> MyBatis 설정 -> Mapper 인터페이스 작성 -> XML 작성 -> MyBatis 사용

MyBatis는 데이터베이스 쿼리 <-> 프로그래밍 언어 코드를 분리하여 유지보수성과 생산성을 높이는 것.

 

MyBatis의 주요 장점

  1. 유연성: SQL 쿼리를 직접 작성할 수 있으므로 매우 유연하다. 또한, MyBatis는 동적 쿼리를 작성할 수 있다.
  2. 간결성: MyBatis는 SQL 쿼리와 프로그래밍 언어 코드를 분리하기 때문에 코드가 간결해져 유지보수에 용이
  3. 성능: MyBatis는 캐시 기능을 제공하여 데이터베이스 연산 속도를 높일 수 있다.
  4. 다양한 데이터베이스 지원: MyBatis는 다양한 데이터베이스에 대한 지원을 제공합니다.

JPA ( Java Persistence API )

JPA (Java Persistence API)는 자바 애플리케이션과 관계형 데이터베이스 사이의 객체 관계 매핑을 위한 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API 이다. JPA는 개발자가 객체 지향적인 방식으로 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다. 자바 플랫폼 SE와 자바 플랫폼 EE를 사용하는 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 자바 API이다. 엔터티 빈(Entity Bean)을 대체하는 기술이다.

 


위 3가지 기술을 정리해보면

출처 김영한님 강의

이렇게 발전이 된 형태라고 보면 편하다

자동화가 제일 잘 된게 JPA

 

참조, 출처 블로그:

위키백과,  https://thefif19wlsvy.tistory.com/249, https://ccomccomhan.tistory.com/130