JDBC 드라이버 종류에는 4가지가 있는데, 변천사로 구분된다.
1. Type 1
JDBC - OJDBC Bridge Driver
표준 드라이버 호출들을 대응되는 ODBC 호출로 변환하고, 운영 시스템이 ODBC(Open Database Connectivity) 라이브러리를 통해 ODBC 데이터 소스로 전송한다
JDBC > ODBC > ODBC Driver 순으로 호출로 변환한다
클라이언트에 ODBC 드라이버 + JDBC 드라이버 둘 다 있어야 한다 => 비효율적, 제한적
시스템이 여러 단계를 거쳐 DB 호출을 전달할 뿐 아니라 JDBC 기능은 어떤 ODBC 드라이버라도 다룰 수 있는 것으로만 제한된다
=> 동적으로 드라이버를 다운로드 하는 환경에서는 사용이 어려움
2. Type 2
Native-API Driver : OCI Driver(Partly Java Driver)
일부가 자바로 되어 있는 JDBC 드라이버 (= 자바 드라이버를 사용하여 특정 업체의 API와 통신함)
Type1에서 ODBC API 변환 단계가 생략된 것을 제외하고는 비슷하다
API를 통해 결과를 돌려줄 때, JDBC 드라이버는 JDBC 표준을 따르는 결과를 만들어 프로그램으로 리턴
> 클라이언트에 설치된 로컬 드라이버(DB 만든 벤더가 제공하는 타 형태의 드라이버)가 필요
> oracle, DB2 등 DBMS 벤더들이 제공하는 API를 다시 호출
하게 되는데, Type1과 마찬가지로 클라이언트의 컴퓨터에 정적으로 드라이버를 설치하여 DB와 연동하는 환경에 적합하다
3. Type 3
Net-Protocol Driver (All Java Driver)
완전한 자바 기술. 코드로 이루어진 JDBC 드라이버
JDBC API 표준에 의해 만들어졌기 때문에 DBMS 종류에 관계 없이 사용이 가능하다
DBMS와 독립적인 Net-Protocol을 사용하여 미들웨어 계층의 서버와 통신하고, 이 때 미들웨어 서버는 게이트웨이 역할을 한다
4가지 타입 중 가장 융통성이 뛰어난 타입이기 때문에 동적으로 다운로드 되는 Applet 같은 환경에 더욱 적합하다
클라이언트가 정적으로 이루어졌다고 해도 Type3 사용시 유지보수가 쉬워진다
특별한 요구 사항이 필요한 경우 빼고는 Type3이 적절하다
4. Type4
Native-Protocol Driver (thin Driver)
완전한 자바 기술. 코드로 이루어진 JDBC 드라이버를 의미한다
* Type 3과의 차이점
DBMS 벤더가 표준을 기준으로 기능을 추가/삭제하여 독자적인 형태로 만든 타입이다
> 특정 DBMS에 의존적인 반면, 해당 DBMS만이 제공하는 기능을 사용 가능한 장점이 있다
> 4가지 Type의 드라이버 중 DB에 가장 효율적으로 접근하는 방법을 제공한다
> 추가로 설치해야 할 라이브러리 미들웨어가 필요 없어 배포하기에도 가장 손쉬운 방법으로 제공한다
> 클라이언트가 동적인 환경에서 특정 DBMS만이 제공하는 기능들을 사용할 경우 적합하다
'Framework > Spring' 카테고리의 다른 글
Framework :: Spring (0) | 2017.01.06 |
---|---|
Framework :: JNDI vs JDBC(DBCP) (0) | 2017.01.02 |
Spring :: STS(Spring tool suite) 설치 (0) | 2017.01.01 |
MyBatis :: Paging 페이징 구현 (7) | 2016.07.23 |
MyBatis :: Mapped Statements collection does not contain value for 오류 (0) | 2016.03.05 |