各种数据源的配置,及对应jar包的引用

今天记录一下本人测试的几种数据源。

特此声明,数据源的种类并不只是以下几种。



数据源定义:

java程序连接数据库的必要中间件

数据源种类的不同,配置的方法也不同(主要是各个数据源定义的属性名称不同)。

      

数据源配置位置:

这里直接在ssh、或者是ssm框架的基础上来说,数据源的配置交给了spring容器来管理,也就是说实在spring的配置文件中,以bean的形式配置的。


准备:

1 . 准 备 连 接 数 据 库 的 驱 动 jar 包 

如果连接的是Oracle,则需要ojdbc14.jar;

如果连接的是Mysql,则需要mysql-connector.jar;


2.准 备 properties 文 件 ( 以 连 接 mysql 为 例 ) 




3. 在 Spring 的 配 置 文 件 中 加 载 properties 文 件 


我的工程目录如下:

各种数据源的配置,及对应jar包的引用

这样我们就可以通过$符号来获取到properties文件中对应的value值了。


一、proxool数据源

所需jar包:  proxool.jar(我使用的是0.9.1版本的)、proxool-cglib.jar 

配置方式如下:


异常:

BeanCreationException:Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/logicalcobwebs/cglib/proxy/Callback

以上异常是因为没有proxool-cglib.jar这个jar包。

解释:

个人理解,在配置中class对应的value属性:org.logicalcobwebs.proxool.ProxoolDataSource是可以在proxool.jar包中找到的,但是在org.logicalcobwebs.proxool.ProxoolDataSource这个类中,调用了一个Callback这个类,而这个类是来自proxool-cglib.jar包中的。


二、c3p0数据源数据源


所需jar包: c3p0.jar(我是用的是0.9.2.1版本的)

配置如下:


解释:

ComboPooledDataSource提供了一个用于关闭数据源的close()方法:destory-method = "close",这样我们就可以保证Spring容器关闭时数据源能够成功释放。 


三、DBCP数据源

所需jar包:commons-dbcp.jar(我是用的版本是2-2.1.1)、commons-pool.jar

配置方式如下:


解释 :

DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,所以在类路径下还必须包括/lib/jakarta- commons/commons-pool.jar。

DBCP也包含了一个close的方法,作用与C3P0一样。


最后:

这样就相当于设置好了可以连接到数据库的数据源。

接下来的工作是把这个数据源注入到Hibernate的数据源(dataSource)中,或者是注入到Mybatis的数据源(dataSource)中,视使用的框架决定。


如果有不懂,或是不理解的同学,可以私信我,或者是下方留言,我看到后会及时回复的。
虽然,,,我也是一个小白。