由于公司之前的项目使用的是 ibatis + c3p0 开发的。 Ibatis 从 apache 搬到 google 并改名为 mybatis 。在三考虑下把 ibatis 改成 mybatis 的想萌发了。现在正在一点点的把项目转换成 mybatis 。
1. 下载c3p0
我们的项目是用的 c3p0, 配置文件也在,在 mybatis 中添加 c3p0 架文件。 如果没有 c3p0 的架包可以到 c3p0 官方下载就行 。
2. 实现 UnpooledDataSourceFactory
由于 Mybatis 没有帮我们实现 c3p0 的数据连接池,所以我们需要自己实现 c3p0 来加载数据连接池。我们只要继承 UnpooledDataSourceFactory 并把 datasource 实现我们的 mybatis 就实实现了 c3p0 的数据连接池。 下面是我实现的方法 。
public class C3P0DataSourceFactory extends UnpooledDataSourceFactory {
public C3P0DataSourceFactory () {
this . dataSource = new ComboPooledDataSource () ;
}
}
3.Mybatis-config.xml 配置
Mybatis-config.xml 配置请到官方查看,下面的是 c3p0 的数据源配置 。
< dataSource type = " org.mybatis.c3p0. C3P0DataSourceFactory " >
<!--
更多 c3p0 配置参数请到
http://www.mchange.com/projects/c3p0/index.html#configuration_properties
-->
< property name = "driverClass" value = "com.mysql.jdbc.Driver" />
< property name = "jdbcUrl" value = "jdbc:mysql://localhost:3306/maps?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false" />
< property name = "user" value = "root" />
< property name = "password" value = "1" />
< property name = "initialPoolSize" value = "3" />
< property name = "maxPoolSize" value = "10" />
< property name = "minPoolSize" value = "3" />
< property name = "acquireIncrement" value = "5" />
< property name = "maxIdleTime" value = "30" />
< property name = "maxIdleTimeExcessConnections" value = "1200" />
< property name = "maxConnectionAge" value = "27000" />
< property name = "maxStatements" value = "500" />
< property name = "maxStatementsPerConnection" value = "50" />
< property name = "numHelperThreads" value = "5" />
< property name = "preferredTestQuery" value = "SELECT 1" />
</ dataSource >