由于公司之前的项目使用的是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的数据连接池。下面是我实现的方法。
publicclassC3P0DataSourceFactoryextendsUnpooledDataSourceFactory{
publicC3P0DataSourceFactory(){
this.dataSource
=newComboPooledDataSource();
}
}
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>