由于公司之前的项目使用的是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>
|