본문 바로가기
Dev. Cookbook/Java, JSP

[java] Oracle 버전 별 JDBC Driver 다운로드 및 호환성 확인

by breezyday 2022. 5. 25.

벌써 부터 쓸데없는(?) 걱정이 생겨서 찾아봤습니다. 별 것 아니라고 생각되기도 하지만 늘 소프트웨어의 버전과 호환성은 어느날 갑자기 개발자를 괴롭히는 적입니다. Oracle을 사용한 지도 제법 오래되었는데 벌써 Oracle Database 21c (21.5) 버전까지 올라갔네요. 아직도 옛날 버전을 사용하고 있는 시스템들도 있을 것 같아 생각난 김에 한 번 정리해봤습니다. 

 

1. 최신 Oracle JDBC Driver 다운로드

가장 최신 버전의 Oracle JDBC Driver는 아래 링크에서 다운로드 받을 수 있습니다.

 

https://www.oracle.com/kr/database/technologies/appdev/jdbc-downloads.html

 

 

페이지를 한 번 미리 살펴보면 Oracle 21c, Oracle 19c, Oracle 18c JDBC Driver를 제공하고 있으며 그나마 ojdbc8과 ojdbc10.jar, ojdbc11.jar만 제공하고 있습니다. 쉽게 생각하면 이전 버전들은 이제 관리 대상이 아니라는 의미입니다. 

 

 

2. 이전 버전 및 모든 버전의 JDBC Driver 다운로드

 

이전 버전의 JDBC Driver는 본문을 읽어보면 링크가 따로 있습니다.

Central Maven Repository 에 보관하고 있다고 되어 있습니다. 

 

 

이전 버전들이 필요하다면 여기서 다운로드 받으면 됩니다.

 

3. Database, JDBC, JDK 버전 호환성

제가 궁금해 하던 부분입니다.

다운로드 페이지에 바로 적어주면 좋겠다는 생각도 들기는 하는데, JDBC 개발자 가이드 안을 찾아보니 찾을 수 있었습니다. 보다 상세한 내용이 궁금하면 아래 링크를 정독해보시면 됩니다. 

 

JDBC 개발자 가이드 및 참조 : 2.1 Oracle JDBC 드라이버에 대한 RDBMS 및 JDK 버전 호환성

 

3.1 Database와 JDBC

 

기본적으로 JDBC 드라이버는 11.2 이상의 DBMS와는 모두 호환이 된다고 되어 있습니다. 하위호환은 물론 상위호환도 된다고 되어있습니다. 즉 JDBC 11.2 드라이버로 DBMS 21.x 버전에 접속할 수 있습니다. 

 

3.2 DBMS, JDBC 그리고 JDK 

 

ojdbc 의 파일은 DBMS보다 JDK에 의존성이 더 높습니다.

JDK에 따라 지원하는 ojdbc의 파일이 달라지게 됩니다.

 

파일명에서 사용하는 JDK 버전을 유추할 수 있는데 ojdbc8.jar 의 경우 JDK 8 이상이 호환됩니다. DBMS 버전이 올라가면 상위버전의 JDK와의 호환성이 늘어갑니다만 최소한 JDK 8 이상을 사용해야 합니다.

 

거의 동일한 내용을 Oracle FAQ-jdbc 섹션에서도 찾아볼 수 있습니다. 

 

 

 

JDBC 스펙은 DBMS 버전별로 좀 더 차이가 납니다만 ojdbc8.jar는 JDBC 4.2 SPEC을 지원하고 있으며 ojdbc10.jar 와 ojdbc11.jar는 JDBC 4.3 SPEC을 지원하고 있습니다. 

 

 

조금 흥미로운 내용은 JDK 11 버전JDBC driver 19.x 버전을 사용할 경우에는 JDBC 4.3 SPEC이 필요하지 않다면 ojdbc8.jar를 추천하고 있습니다. 

 

 

4. Oracle 10g 이하 버전에서 JDBC Driver

공식 홈페이지에서는 더이상 언급이 없어서 다른 포스팅에서 관련 자료를 찾아서 간략하게 정리했습니다.

 

Oracle Database version JDBC file 및 JDK
10g Release 2 ojdbc14.jar : JDK 1.4, JDK 1.5 
classes12.jar : JDK 1.2, JDK 1.3 
10g  ojdbc14.jar : JDK 1.4
classes12.jar : JDK 1.2, JDK1.3
9i 9.2.x ojdbc14.jar : JDK 1.4, JDK1.5
classes12.jar : JDK 1.2, JDK1.3
classes111.jar : JDK 1.1
9i 9.0.x classes12.jar : JDK 1.2, JDK 1.3
classes111.jar : JDK 1.1
8i classes12.jar : JDK 1.2
classes111.jar : JDK 1.1

 

 

 

참고

https://www.oracle.com/kr/database/technologies/appdev/jdbc-downloads.html

 

https://docs.oracle.com/en/database/oracle/oracle-database/21/jjdbc/JDBC-getting-started.html#GUID-00FE03D7-48D6-4DA5-A3A0-8768D2936AB8

 

https://intro0517.tistory.com/201

 

 

 

 

 

 

댓글