JDBC(Java Database Connectivity)는 Java 언어 기반의 데이터베이스 연동을 위한 표준 인터페이스 API로, Java 프로그램이 다양한 관계형 데이터베이스(RDBMS)와 독립적으로 통신할 수 있도록 중간 계층 역할을 수행한다. JDBC는 ANSI SQL을 기반으로 하며, 플랫폼 독립적 데이터베이스 연동을 핵심 목표로 한다.
Java 애플리케이션이 DB와 통신할 수 있도록 하는 인터페이스 집합. 주요 구성은 다음과 같다.
JDBC 드라이버는 API 호출을 실제 DBMS의 프로토콜로 변환하는 역할을 하며, 아래와 같이 4가지 유형으로 분류된다.
| 드라이버 유형 | 설명 | 장단점 |
|---|---|---|
| Type 1 (JDBC-ODBC Bridge) | ODBC 호출을 브리지로 연결 | 단순하지만 플랫폼 종속 |
| Type 2 (Native-API Driver) | 벤더 API 사용 | 성능 우수, 플랫폼 종속 |
| Type 3 (Network Protocol Driver) | 미들웨어 서버를 통해 통신 | 확장성 우수, 복잡 |
| Type 4 (Thin Driver / Pure Java) | Java로 구현된 직접 연결 | 플랫폼 독립, 현대 JDBC 표준 |
JDBC는 추상화 기반 설계를 통해 다양한 DBMS에 대한 종속성을 제거하고, 개발자에게는 일관된 API를 제공한다. 이러한 접근은 벤더 종속성 문제를 해소하며, Java의 "Write Once, Run Anywhere" 철학을 데이터베이스 영역으로 확장시켰다.
SQLException을 통해 DBMS 오류를 캡슐화하며, SQLState, ErrorCode 등을 통해 상세 원인을 제공함으로써 표준화된 예외 처리 방식을 구현한다.
JDBC는 Java에서 데이터베이스를 제어하기 위한 기반 기술이자 확장 기술의 뿌리로, 그 자체로 완결된 접근 방식을 제공하지만, 현대 애플리케이션에서는 보완적 활용이 일반적이다. 기술 선택은 요구사항의 복잡성, 성능, 유지보수성을 기준으로 하여 계층적 설계 구조를 수립해야 하며, JDBC는 그 기반 역할로 여전히 유효한 기술로 평가된다.