BackEnd/Spring Boot

JDBC란?

Raconer 2023. 4. 15. 17:24
728x90

JDBC란?

JDBCJava Database Connectivity의 약자로, Java에서 DB에 접속할 수 있도록 하는 API입니다.
JDBC는 Database에서 쿼리를 실행하거나 업데이트하는 기능을 제공합니다.
관련 패키지는 java.sqljavax.sql에 포함되어 있으며,
JVM 시스템과 DB 시스템을 연결하고 통신하기 위한 Java의 표준 스펙입니다.


Java.sql와 Javax.sql 차이

  • java.sql
    Java 언어로 작성된 프로그램이 데이터 소스에 접근하고 처리할 수 있도록 하는 API.
    다양한 DB 드라이버를 동적으로 연결할 수 있는 프레임워크 제공.
    SQL문 전달에 적합하며, 테이블 형태의 모든 데이터 소스 읽기/쓰기 가능.

  • javax.sql
    서버 측 데이터 소스 접근 및 처리를 위한 API.
    java.sql을 보완하며 Java SE 1.4부터 기본 포함됨.


ODBC와 JDBC 차이

항목 JDBC ODBC
정의 Java Database Connectivity Open Database Connectivity
언어 의존성 Java 전용 언어 독립적
플랫폼 Java 기반 (JVM 필요) 다양한 언어 지원
사용 목적 Java 애플리케이션 ↔ DB 연결 다양한 애플리케이션 ↔ DB 연결

JDBC 흐름

Java Program ↔ JVM ↔ Database Driver ↔ Database
  • JVM (Java Virtual Machine)
    Java 바이트 코드를 OS에 맞게 실행 가능한 형태로 해석
    JDBC의 실행은 JVM 내에서 처리됨

Ibatis란?

  • iBATIS는 JDBC를 더 효율적으로 사용하기 위해 만든 프레임워크
  • SQL과 자바 코드를 분리하고, DAO를 독립적으로 구성 가능
  • XML에 SQL을 작성하고 자바 코드에서는 실행만 담당

MyBatis란?

  • MyBatis는 iBATIS를 기반으로 발전한 ORM 프레임워크
  • Java에서 관계형 데이터베이스 프로그래밍을 쉽게 도와줌
  • JDBC의 반복 작업을 간소화

주요 특징

  1. SQL 코드 분리

    • DAO 파일에 직접 SQL 작성 → Mapper 파일에 SQL 작성으로 전환
    • 필요 시 XML에 정의된 SQL을 불러와 사용
  2. 생산성

    • 반복되는 JDBC 코드 제거로 코드량 감소
  3. 유지보수성 향상

    • SQL 변경 시 Mapper 파일만 수정
    • DAO는 영향을 받지 않음

Ibatis vs MyBatis

항목 iBATIS MyBatis
개발 주체 Apache Google Code로 이전 후 리브랜딩
최소 JDK 1.4 이하 1.5 이상
패키지명 com.ibatis.* org.apache.ibatis.*
표현 방식 #var# #{var}
SQL 관리 XML 기반 XML + Annotation 지원

참고 자료

728x90

'BackEnd > Spring Boot' 카테고리의 다른 글

json-simple 사용  (0) 2023.04.15
HikariCP란?  (0) 2023.04.15
Spring Boot 서버 구축[2]  (0) 2023.04.15
Spring Boot 서버 구축[1]  (0) 2023.04.15
Spring Boot란?  (0) 2023.04.15