classes12.jar,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.xclasses12.zip 適用於JDK 1.2.x只有zip檔案,無jar檔案。 -------------------------------------------------------------------------------隨Oracle 9i發布的Oracle JDBC驅動9.2.0版本 classes111.jar 適用於JDK 1.1.xclasses12.jar 適用於JDK 1.2 and JDK 1.3 (我的項目環境JDK1.6,oracle 10g,windows,用了這個目前沒發現問題)ojdbc14.jar 適用於JDK 1.4classes111.zip 適用於JDK 1.1.xclasses12.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.44、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.52、支援JDBC 3.0 -------------------------------------------------------------------------------隨Oracle 11.1發布的Oracle JDBC驅動11.1版本ojdbc5.jar: 適用於jdk5ojdbc6.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、新的Factory 方法。Oracle JDBC 11R1 oracle.jdbc.OracleConnection提供了建立Oracle對象的Factory 方法。包括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"字樣,就知道版本了