阿里数据库连接池druid连接Oracle 11g R2报错:not support oracle driver 1.0
1、背景及环境
这几天在捣鼓Struts2+Spring3+Hibernate4+Maven+EasyUI的整合,JDK1.7,数据库采用Oracle 11g R2,驱动采用ojdbc14,数据库连接池采用阿里巴巴的druid(完整的包名为com.alibaba.druid.pool.DruidDataSource),但是在做用JUnit做单元测试的时候报如下错误:
Caused by: java.sql.SQLException: not support oracle driver 1.0
2、网友问答
网上搜了很久,发现最初发表在开源中国上的一篇被转载多次的问答:
问:今天第一次使用druid,程序启动的时候报“druid –not support oracle driver 1.0”,换个各种版本驱动(包括ojdbc6),都不行。是因为连接的客户端的版本太低了吗?
答:温少说的对,是因为有多个驱动包造成的。在jre的ext目录下发现了class12.jar。
3、本文方法
我检查了下,发现我的问题并不是这个原因造成的,不过这篇文章给了我点启示,就是数据库驱动的版本问题,后来换用Oracle 11g自带的驱动ojdbc6.jar,问题得到解决。
4、本文相关链接
①druid介绍:阿里巴巴数据库连接池druid
②Maven下如何安装ojdbc6.jar:MyEclipse环境下如何采用Maven导入ojdbc14.jar和ojdbc6.jar
③Oracle数据库驱动版本变迁:Oracle数据库驱动历代版本及其区别(classes12,ojdbc14,ojdbc5,ojdbc6等)
//---------------------------------------------------------------------------------------------------------------------------------------------------------
http://www.coridc.com/archives/2748.html
这几天在捣鼓Struts2+Spring3+Hibernate4+Maven+EasyUI的整合,采用Oracle数据库,Oracle数据库驱动采用ojdbc14,后来因为数据库连接池采用阿里巴巴的druid,其中可能存在版本问题而换成了ojdbc6。本文主要介绍MyEclipse环境下利用Maven导入ojdbc14.jar和ojdbc6.jar的方法。
1、ojdbc14.jar的导入方法:
<dependency>
<groupid>com.oracle</groupid>
<artifactid>ojdbc14</artifactid>
<version>10.2.0.4.0</version>
</dependency>
①与导入其它jar包相同,在项目pom.xml文件中,可以采用Dependencies向导搜索并导入代码,可以发现其Group Id为com.oracle,Artifact Id为ojdbc14,目前最新版本为:10.2.0.4.0,因此有如下代码:
如果是其它一些常见的包,如Struts、Spring、Hibernate等,在这步结束后就算导入成功了,但是对于Oracle来说,我们看到的并非这样,MyEclipse中,pom.xml文件打了个红叉,这是因为Oracle JDBC驱动包是需要Oracle官方授权才能被下载,Apache并未提供ojdbc.jar的公开下载(http://search.maven.org/),这一点可到Maven的本地库目录下去找,如:C:\Users\Administrator\.m2\repository\com\oracle\ojdbc14\10.2.0.4.0,发现并无ojdbc14-10.2.0.4.0.jar,为此,我们需要从网上自行下载ojdbc.jar
②下载ojdbc14包,并在命令行中执行如下语句:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=D:/extJar/ojdbc14.jar
执行完后,我们可以在目录C:\Users\Administrator\.m2\repository\com\oracle\ojdbc14\10.2.0.4.0下找到包ojdbc14-10.2.0.4.0.jar,刷新项目,成功。
注:1)若想执行上述语句,首先需要配置Java的环境变量和Maven的环境变量;2)请注意上述的版本号和ojdbc.jar路径;
2、ojdbc6.jar的导入方法:
唯一一点与ojdbc14.jar导入方法最大的不同是,当我们在MyEclipse下项目中的pom.xml的Dependencies向导搜索时,无法搜索到ojdbc6.jar这个包,这里我们可以按如下方式解决:
①直接在pom.xml中编写代码:
<dependency>
<groupid>com.oracle</groupid>
<artifactid>ojdbc6</artifactid>
<version>11.2.0.1.0</version>
</dependency>
②与ojdbc14的方法相同,执行:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=D:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar
完成。