목차
1. JDBC
2. JDBC API
3. DAO 디자인 패턴
4. JDBC와 트랜잭션
Java DataBase Connectivity (JDBC)
- sun 회사에서 개발
- 유지 보수하기 쉽도록 자바 애플리케이션에서의 DB 접근 및 사용 방법에 대한 표준화 필요성 부각
- 자바 애플리케이션과 DB와의 의존성을 낮추고 독립성을 필요
- 표준화된 인터페이스 제공
- java.spl 패키지

이 그림은 자바 애플리케이션이 JDBC라는 통로(라이브러리)를 통해 오라클, MySQL, DB2 같은 여러 데이터베이스에 연결하는 모습을 간단히 보여줍니다.
- 자바 프로그램에서 JDBC를 사용하면, 각 데이터베이스마다 제공되는 JDBC 드라이버(구현체)를 통해 손쉽게 연결하고 데이터를 주고받을 수 있습니다.
- 결국, 자바 애플리케이션은 JDBC만 알면 되고, 데이터베이스별로 다른 방식은 드라이버가 알아서 처리해 준다는 것이 핵심입니다.
쉽게 말해서 우리는 자바 애플리케이션과 DB와의 관계를 느슨하게 해주기 위해 JDBC를 사용한다.
그리고, 우리는 구현체(동그라미)를 제외한 부분(세모,네모,마름모 = DB라이브러리)만 구현해주면 된다.
두가지 관점에서 바라보는 JDBC
관점 | 의미 |
개발자(WHAT) | DB와의 통신을 하기 위해 Java Application에서 사용하는 방법 |
DB제품과 상관없이 표준화된 인터페이스를 이용하여 코드 작성 | |
각DB 접속방법 및 구현에 대한 상세한 정보를 알 필요가 없음(인터페이스) | |
DataBase(HOW) | Java Application을 위한 표준화된 통신 기능을 제공하기 위해구현해야하는 약속, 명세 |
표준화된 인터페이스를 준수하는 DBMS만의 고유한 클래스 구 | |
다른 DB 벤던와 다른 독자적인 구현을 유지 할 수 있음 |
JDBC Driver
드라이버의 개념에 대해서 쉽게 예시를 잡고 읽으면 이해하기 쉬울 것이다. 예를 들어 우리가 그래픽카드를 새로 샀을 때 컴퓨터에 그래픽 드라이버를 설치해야한다. 인텔이 모든 그래픽 카드의 드라이버를 미리 설치해 두진 않았을 것이다. 사용자가 자기에게 맞는 그래픽 드라이버를 설치해줘야 한다. JDBC 드라이버도 마찬가지다.
- JDBC 인터페이스에 대한 DB 벤더들이 구현한 클래스 라이브러리
- JDBC를 이용하는 Java Application 개발 후 실행 시에 반드시 필요함
- 사용하려는 DB 벤더 홈페이지에서 다운로드 받거나 Maven의 의존성을 통해 관리
- DB 교체하면 해당 DB에 맞는 드라이버로 교체

우리는 자바어플리케이션에 동그라미를 활용하는 코드를 작성할 수 있다. 그리고 컴파일까지 가능.
왜냐하면 JDBC 표준은 java.sql 패키지에 이미 명세, 구현되어 있기 때문이다. 하지만, JDBC는 개발자의 관점에서 WHAT만 구현했기 때문에 실제로 실행하기 위해서는 자바어플리케이션에서 구현체(세모,네모,마름모)가 필요하게 된다.
이때 이 구현체를 JDBC드라이버라고 한다.