728x90
JDBC란?
JDBC는 Java Database Connectivity의 약자로, Java에서 DB에 접속할 수 있도록 하는 API입니다.
JDBC는 Database에서 쿼리를 실행하거나 업데이트하는 기능을 제공합니다.
관련 패키지는java.sql과javax.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의 반복 작업을 간소화
주요 특징
SQL 코드 분리
- DAO 파일에 직접 SQL 작성 → Mapper 파일에 SQL 작성으로 전환
- 필요 시 XML에 정의된 SQL을 불러와 사용
생산성
- 반복되는 JDBC 코드 제거로 코드량 감소
유지보수성 향상
- 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 |