Categories
java

check jdbc version

There are 2 versions to check when using jdbc.

The first one is in the name of the file : classes12.zip works with JDK 1.2 and later, ojdbc7.jar works with java7 and later.

Even if classes12.zip works fine with JAVA 8, it is not supported.

Be sure you check the support matrix on the Oracle JDBC FAQ

According to the support note 401934.1, only Oracle JDBC driver 11.2.0.3 (and greater) versions support JDK 1.7.

To check your version of the JDBC Driver, there are two methods.

One is with the jar (or zip) utility.

$ jar -xvf ojdbc7.jar META-INF/MANIFEST.MF
inflated: META-INF/MANIFEST.MF
$ grep Implementation META-INF/MANIFEST.MF
Implementation-Vendor: Oracle Corporation
Implementation-Title: JDBC
Implementation-Version: 12.1.0.1.0
$ unzip classes12.zip META-INF/MANIFEST.MF
Archive: classes12.zip
inflating: META-INF/MANIFEST.MF
$ grep Implementation META-INF/MANIFEST.MF
Implementation-Title: classes12.jar
Implementation-Version: Oracle JDBC Driver
version - "10.2.0.1.0"
Implementation-Vendor: Oracle Corporation
Implementation-Time: Jun 22 18:51:56 2005

The last digit is often related to the java version, so if you have ojdbc6 and use java 6, you’re pretty safe. If you have java 8, you won’t find any ojdbc8 available at the time of writing, a safer bet is to use the latest version and to wait for a support note. The latest notes about ojdbc7.jar currently does not display java 8 certification. Probably we will have to wait for a more recent version of ojdbc7.jar.

Another mean to find the version of the driver is to use DatabaseMetaData.getDriverVersion()


public class Metadata {
public static void main(String argv[])
throws java.sql.SQLException {
java.sql.DriverManager.registerDriver(
new oracle.jdbc.OracleDriver());
System.out.println(
java.sql.DriverManager.
getConnection(
"jdbc:oracle:thin:@SRV01.EXAMPLE.COM:1521:DB01",
"scott", "tiger").
getMetaData().getDriverVersion());
}
}


$ javac -classpath ojdbc6.jar Metadata.java
$ java -classpath ojdbc6.jar:. Metadata
11.2.0.3.0

By Laurent Schneider

Oracle Certified Master

4 replies on “check jdbc version”

Or just:
> java -jar ojdbc7.jar
Oracle 12.1.0.1.0 JDBC 4.1 compiled with JDK7 on Thu_Apr_04_15:09:24_PDT_2013
#Default Connection Properties Resource
#Wed Jun 25 13:52:29 CEST 2014

Thanks Igor. It actually does not return the same value, but your one sounds more correct.


Oracle 12.1.0.1.0 JDBC 4.1 compiled with JDK7 on Thu_Apr_04_15:09:24_PDT_2013
#Default Connection Properties Resource
#Wed Jun 25 14:29:36 CEST 2014

in Manifest

Specification-Vendor: Sun Microsystems Inc.
Specification-Title: JDBC
Specification-Version: 4.0

same for jdbc 11.2.0.4. Both your method and mine returns 11.2.0.3. But it’s a bug. If you apply patch 17455232, it fixes the jar but not the manifest

PS C:\download\java> type .\META-INF\MANIFEST.MF
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_51-b10 (Sun Microsystems Inc.)
Implementation-Vendor: Oracle Corporation
Implementation-Title: JDBC
Implementation-Version: 11.2.0.3.0
Repository-Id: JAVAVM_11.2.0.4.0_LINUX.X64_130813
Specification-Vendor: Sun Microsystems Inc.
Specification-Title: JDBC
Specification-Version: 4.0
Main-Class: oracle.jdbc.OracleDriver
sealed: true

Name: oracle/sql/converter/
Sealed: false

Name: oracle/sql/
Sealed: false

Name: oracle/sql/converter_xcharset/
Sealed: false

Name: oracle/replay/driver/
Sealed: false

PS C:\download\java> java -jar .\ojdbc6.jar
Oracle 11.2.0.4.0 JDBC 4.0 compiled with JDK6 on Tue_Jun_10_22:28:36_PDT_2014
#Default Connection Properties Resource
#Wed Jun 25 16:09:54 CEST 2014

Leave a Reply

Your email address will not be published.