各种数据源的配置,及对应jar包的引用
今天记录一下本人测试的几种数据源。
特此声明,数据源的种类并不只是以下几种。
数据源定义:
java程序连接数据库的必要中间件
数据源种类的不同,配置的方法也不同(主要是各个数据源定义的属性名称不同)。
数据源配置位置:
这里直接在ssh、或者是ssm框架的基础上来说,数据源的配置交给了spring容器来管理,也就是说实在spring的配置文件中,以bean的形式配置的。
准备:
1 . 准 备 连 接 数 据 库 的 驱 动 jar 包
如果连接的是Oracle,则需要ojdbc14.jar;
如果连接的是Mysql,则需要mysql-connector.jar;
2.准 备 properties 文 件 ( 以 连 接 mysql 为 例 )
3. 在 Spring 的 配 置 文 件 中 加 载 properties 文 件
我的工程目录如下:
这样我们就可以通过$符号来获取到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)中,视使用的框架决定。
如果有不懂,或是不理解的同学,可以私信我,或者是下方留言,我看到后会及时回复的。
虽然,,,我也是一个小白。