我们预先创建好一部分连接,放在一个池中(集合),并且将这些连接标记为空闲状态。如果要使用连接就从池中获取一个连接使用,用完之后再次还回池中。连接池自己应该有自动初始化功能,自动增长功能,自动缩减功能。所谓自动增长就是当池中的连接都被使用之后,自动创建新的连接放入池中。所谓自动缩减就是当池中的空闲连接过多时,自动关闭部分连接。
德鲁伊是阿里巴巴开发的号称为监控而生的数据库连接池,是目前最好的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况。已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。
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
完成。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)