天天看點

OJDBC版本差別 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的差別]

在使用Oracle JDBC驅動時,有些問題你是不是通過替換不同版本的Oracle JDBC驅動來解決的?最常使用的ojdbc14.jar有多個版本,classes12.jar有多個版本你了解嗎?

連接配接類型:

  • 1、JDBC OCI: oci是oracle call interface的縮寫,此驅動類似于傳統的ODBC 驅動。因為它需要Oracle Call Interface and Net8,是以它需要在運作使用此驅動的JAVA程式的機器上安裝用戶端軟體,其實主要是用到orcale用戶端裡以dll方式提供的oci和伺服器配 置。
  • 2、JDBC Thin: thin是for thin client的意思,這種驅動一般用在運作在WEB浏覽器中的JAVA程式。它不是通過OCI or Net8,而是通過Java sockets進行通信,是純java實作的驅動,是以不需要在使用JDBC Thin的用戶端機器上安裝orcale用戶端軟體,是以有很好的移植性,通常用在web開發中。

随Oracle 8i釋出的Oracle JDBC驅動8.1.7版本

classes111.zip 适用于JDK 1.1.x
classes12.zip  适用于JDK 1.2.x
           

隻有zip檔案,無jar檔案。

随Oracle 9i釋出的Oracle JDBC驅動9.2.0版本

classes111.jar  适用于JDK 1.1.x
classes12.jar   适用于JDK 1.2 and JDK 1.3 (我的項目環境JDK1.6,oracle 10g,windows,用了這個目前沒發現問題)
ojdbc14.jar     适用于JDK 1.4
classes111.zip  适用于JDK 1.1.x
classes12.zip   适用于JDK 1.2.x
           

***_g.jar 隻是用javac -g編譯,生成所有調試資訊,其它全一樣

新特性:

  • 1、Thin連接配接類型的驅動對BFILE,BLOB,CLOB 提供直接支援,以前通常是調用PL/SQL來實作。
  • 2、支援JDBC 3.0 特性
  • 3、ojdbc14.jar 支援JDK 1.4
  • 4、ojdbc14.jar 支援儲存點(Savepoint)
  • 5、可以在不同的連接配接池中使用PreparedStatement,這是重要的性能提升

從此以後新的jar檔案的命名采用

ojdbc<jdk ver>.jar

格式 ,以前的jar檔案名稱不變

随Oracle 10.2釋出的Oracle JDBC驅動10.2版本

classes12.jar  适用于JDK 1.2 and JDK 1.3. 

ojdbc14.jar    适用于 JDK 1.4 and 5.0
           

***_g.jar 隻是用javac -g編譯,生成所有調試資訊,其它全一樣

特點:

  • 1、全面支援JDK 1.5
  • 2、支援JDBC 3.0

随Oracle 11.1釋出的Oracle JDBC驅動11.1版本

ojdbc5.jar:   适用于jdk5
ojdbc6.jar:   适用于jdk6 (如果你使用jdk1.5,就不能使用這個驅動)
           

***_g.jar 隻是用javac -g編譯,生成所有調試資訊,其它全一樣

新特性:

  • 1、ojdbc6.jar:支援JDK6,支援JDBC 4.0,新的java.sql.SQLXML類型沒有被支援。

    ojdbc5.jar:全面支援使用JDK5 和 JDBC 3.0 。

  • 2、建議使用oracle.jdbc.OracleDriver類,不建議使用oracle.jdbc.driver.OracleDriver。從9.0.1開始的每個release都推薦使用oracle.jdbc。
  • 3、j2se 1.2,1.3,1.4不再支援。11R1不再包括這些版本的jar和zip,如果仍然使用這些版本,可以繼續使用10gR2的jdbc。
  • 4、11gR1 Thin driver支援AES加密算法,SHA1 hash算法,RADIUS, KERBEROS,SSL認證機制.
  • 5、支援ANYDATE和ANYTYPE類型。這兩種類型自9i引入,11R1前,程式員隻能通過PL/SQL操作。
  • 6、進階隊列支援。11R1提供了通路AQ的高性能接口。
  • 7、支援資料庫變更通知。
  • 8、Thin和OCI的資料庫啟動和關閉。11R1提供了這樣的方法來啟動和關閉資料庫。
  • 9、新的工廠方法。Oracle JDBC 11R1 oracle.jdbc.OracleConnection提供了建立Oracle對象的工廠方法。包括ARRAY, BFILE, DATE, INTERVALDS, NUMBER, STRUCT, TIME,TIMESTAMP,TIMESTAMP等。

總體講新版本的JDBC驅動 性能強、很多bug被發現并已解決。

我遇到的,之前使用ojdbc14.jar(不記得哪個版本了)批量插入10萬條,實際隻插入了3萬多條,其它的丢失了,換ojdbc6.jar後,一次commit批量插入100萬條也OK了。

盡量使用和資料庫版本一緻的驅動,有bug時,換高版本的JDBC驅動試試 。

如果一個jdbc的jar包你不知道是那個版本的,可以解壓這個jar包,再META-INF\MANIFEST.MF 檔案中找”Oracle JDBC Driver version - 10.1.0.2.0”字樣,就知道版本了.