classes12.jar,ojdbc14.jar,ojdbc5.jar和ojdbc6.jar,ojdbc7.jar的区别与差异

【转 原文:https://yq.aliyun.com/wenji/241832】部分修改 重新排版

  在使用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开发中。

二、对应版本

1.【Oracle 8i 】发布的Oracle JDBC驱动8.1.7版本

  【classes111.zip】 适用于JDK 1.1.x
  【classes12.zip】   适用于JDK 1.2.x
    只有zip文件,无jar文件。

2.【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文件名称不变

3.【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编译,生成所有调试信息,其它全一样

特点

①、全面支持JDK 1.5
②、支持JDBC 3.0

4.【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等。

5.【Oracle 数据库 12 c 版 1 (12.1.0.2)】 的 JDBC 驱动程序

【ojdbc7.jar】   适用于jdk7
【ojdbc6.jar:】  适用于jdk6 (如果你使用jdk1.6,就不能使用这个驱动,否则无法识别)
***_g.jar 只是用javac -g编译,生成所有调试信息,其它全一样

为1.7的jdk准备的

---------------------------------------------------

总体讲新版本的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"字样,就知道版本了

OJDBC版本区别的更多相关文章

  1. OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]

    http://blog.163.com/jekyll_zhou@126/blog/static/1820473820123206189381/ OJDBC版本区别 [ojdbc14.jar,ojdbc ...

  2. Java从入门到精通——数据库篇之OJDBC版本区别

    classes12.jar,ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别,之间的差异 在使用Oracle JDBC驱动时,有些问题你是不是通过替换不同版本的Oracle  ...

  3. OJDBC版本区别:ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别

    classes12.jar - for Java 1.2 and 1.3ojdbc14.jar - for Java 1.4 and 1.5ojdbc5.jar - for Java 1.5ojdbc ...

  4. 转 OJDBC驱动版本区别 [ojdbc14.jar,ojdbc5.jar跟ojdbc6.jar的区别]

    OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别] 在使用Oracle JDBC驱动时,有些问题你是不是通过替换不同版本的Oracle  JDBC驱动来解 ...

  5. .NET 版本区别,以及与 Windows 的关系

    老是记不住各 Windows 版本中的 .NET 版本号,下面汇总一下: .NET Framework各版本汇总以及之间的关系 Mailbag: What version of the .NET Fr ...

  6. java版本区别

    java版本区别 点我,点我,Eclipse几个版本号的区别(part1) 点我,点我,Eclipse几个版本号的区别(part2) 点我,点我,Eclipse几个版本号的区别(part3)

  7. Windows8 各种版本区别对比详解

    微软的 Windows8 操作系统提供了4个不同的版本,分别是 Windows RT.Windows 8 标准版.Windows 8 Pro 专业版 以及 Windows 8 Enterprise 企 ...

  8. win10全系列官方MSDN原版系统安装密钥、版本区别、镜像下载地址与激活教程

    微软发布win10正式版已经过去几天了,相信很多同学都心情高涨的装上了期待已久的win10系统,但也有很多同学面对win10系统的众多版本感到一脸茫然,的确,微软在win10系统版本上的划分确实有点多 ...

  9. java的版本区别、下载、配置

    参考:http://blog.csdn.net/liujun13579/article/details/7684604 java的版本区别 常用的 java 程序分为  Java SE.Java EE ...

随机推荐

  1. C语言memset用法

    1.函数原型: void *memset(void *str,int c,unsigned long n): 2.参数意义: 第一个参数:数组str的起始地址:第二个参数:要赋值给数组的新值,这个值一 ...

  2. MacBook键盘锁定、按键失效、无反应等问题

    目录 MacBook按键无反应 u,i,o,j,k,l等键失灵 capslock灯不亮 原文链接:joselynzhao·CSDN·MacBook键盘锁定.按键失效.无反应等问题 MacBook按键无 ...

  3. 学习PKI技术【理论+实战】

    1.预备知识 PKI(Public Key Infrastructure)定义 PKI:利用公钥理论和技术建立的提供网络信息安全服务的基础设施.为用户提供所需的密钥和证书管理,用户可以利用PKI平台提 ...

  4. 老猿Python博客文章目录索引

    本目录提供老猿Python所有相关博文的一级目录汇总,带星号的为收费专栏: 一.专栏列表 本部分为老猿所有专栏的列表,每个专栏都有该专栏置顶的博文目录: 专栏:Python基础教程目录 专栏:* 使用 ...

  5. WEB安全漏洞挖掘向入坑指北

    这个指北不会给出太多的网站和方向建议,因为博主相信读者能够从一个点从而了解全局,初期的时候就丢一大堆安全网址导航只会浇灭人的热情,而且我也不适合传道授业解惑hhh 安全论坛: 先知社区 freebuf ...

  6. python安装Scrapy框架

    看到自己写的惨不忍睹的爬虫,觉得还是学一下Scrapy框架,停止一直造轮子的行为 我这里是windows10平台,python2和python3共存,这里就写python2.7安装配置Scrapy框架 ...

  7. 软件测试相关术语(测试策略 && 测试方案 ....)

    软件测试有几种不同的定义方法: a.软件测试是为了发现程序中的错误而执行程序的过程. b.软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并运用这些测试用例运行程序,以 ...

  8. MyBatis if 标签的坑,居然被我踩到了。。。

    事件的原因是这样的,需求是按条件查数据然后给前端展示就行了,写的时候想着挺简单的,不就是使用 MyBatis 动态 SQL 去查询数据吗? 现实还是很残酷的,等我写完上完 UAT 后,前端同学说根据s ...

  9. 百度前端技术学院-基础-day3

    2020.9.15 第三天的课程内容,复习了一些CSS的基础属性(果然不用就会忘). 学习了一些新的属性,比如text-shadow.text-indent(还不是很清楚).font-style等等. ...

  10. block、inline、inline-block区别以及标签嵌套

    1.block 将元素转为块元素,块元素占一行,可以设置宽和高. 2.inline 将元素转为行内元素,占一行,不可以设置宽和高. 3.inline-block 将元素设置为行内块元素,这时元素既可以 ...