MyBatis配置C3P0连接池:
MyBatis虽自带连接池POOLED,但是我们不推荐使用,推荐使用诸如C3P0之类的市面上的主流连接池
1. 导入依赖
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.4</version>
</dependency>
2,创建C3P0与MyBatis兼容的数据源工厂类(其它连接池同理)
src/main/java/top/xiongmingcai/datasource/C3P0DataSourceFactory.java
/**
* C3P0与mybatis兼容使用的数据源工厂类
*/
public class C3P0DataSourceFactory extends UnpooledDataSourceFactory {
public C3P0DataSourceFactory() {
this.dataSource = new ComboPooledDataSource();
}
}
3,修改mybatis-config.xml文件
<environment id="c3p0">
<transactionManager type="JDBC"/>
<dataSource type="top.xiongmingcai.datasource.C3P0DataSourceFactory">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/babytun?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT"/>
<property name="user" value="root"/>
<property name="password" value="NewPassword"/>
<property name="initialPoolSize" value="5"/>
<property name="maxPoolSize" value="20"/>
<property name="minPoolSize" value="5"/>
</dataSource>
</environment>
启动C3P0连接池
完成了前面的准备工作和信息配置,下面就正式进入连接池的操作了。
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* 数据库工具类
* @author cloud
*
*/
public class C3P0Util {
static ComboPooledDataSource cpds=null;
static{
cpds = new ComboPooledDataSource();//这是mysql数据库
}
/**
* 获得数据库连接
* @return Connection
*/
public static Connection getConnection(){
try {
return cpds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("连接失败");
return null;
}
}
/**
* 放回连接对象,close方法并不是关闭,而是更改该连接对象的状态为可用。
* @param conn
*/
public static void close(Connection conn){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}