一、導包
- c3p0包

- mybatis包

-
數據庫的連接包

二、繼承UnpooledDataSourceFactory的類
Mybatis 沒有幫開發者實現 c3p0 數據庫連接池,故需要使用者自己實現 c3p0 來加載數據連接池。其實很簡單的,只要繼承 UnpooledDataSourceFactory 並把 dataSource 實現。我們的 mybatis 就實現了 c3p0 數據庫連接池。
import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory; import com.mchange.v2.c3p0.ComboPooledDataSource; public class c3p0DataSourceFactory extends UnpooledDataSourceFactory{ public c3p0DataSourceFactory(){ this.dataSource=new ComboPooledDataSource(); } }
三、mybatis-config.xml全局配置文件配置c3p0
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="com.demo.utils.c3p0DataSourceFactory">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="initialPoolSize" value="5"/>
<property name="maxPoolSize" value="20"/>
<property name="minPoolSize" value="5"/>
</dataSource>
</environment>
</environments>
注意:
- dataSource的type必須是實現了UnpooledDataSourceFactory的類的全類名,也就是第二步實現的類的全類名。
- property下的name必須是規范的c3p0的driverClass、jdbcUrl、user等值。
- property下的value是引入的db.properties中的數據。
另外:
mybatis-config.xml全局配置文件中引入外部數據庫文件db.properties的語句。(在configuration屬性下;resource為引用的路徑名,切莫引用錯誤)
<properties resource="db.properties"></properties>
db.properties文件的內容:(等號左邊的屬性名可以任意定義,但最好能見名知意)
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/databaseName?characterEncoding=UTF-8 jdbc.username=username jdbc.password=password
