Mybatis整合Druid连接池
1、加入maven依赖
<dependencies>
<!-- Mybatis框架 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<!-- MYSQL8 JDBC驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<!-- Druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.14</version>
</dependency>
</dependencies>
2、创建Druid数据源工厂类,该类必须继承UnpooledDataSourceFactory这个类
因为连接池的不同,Druid需要重写父类的getDataSource()方法,在这个方法中需要将原始的dataSource强转成DruidDataSource,并执行init()方法
import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;
import javax.sql.DataSource;
import java.sql.SQLException;
public class DuridDataSourceFactory extends UnpooledDataSourceFactory {
public DuridDataSourceFactory(){
this.dataSource = new DruidDataSource();
}
@Override
public DataSource getDataSource() {
try {
((DruidDataSource)this.dataSource).init(); //初始化Druid数据源
} catch (SQLException throwables) {
throw new RuntimeException(throwables);
}
return this.dataSource;
}
}
1、在mybatis-config.xml中修改数据源配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 开启驼峰命名转换 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"></transactionManager>
<!-- Mybatis自带连接池 -->
<!--<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:9999/imooc-oa?useSSL=false&userUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"/>
<property name="username" value="xxxx"/>
<property name="password" value="xxxx"/>
</dataSource>-->
<!-- 配置Druid连接池数据源 -->
<dataSource type="包名.DuridDataSourceFactory">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:9999/imooc-oa?useSSL=false&userUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"/>
<property name="username" value="xxxx"/>
<property name="password" value="xxxx"/>
<!-- 配置Druid连接池数初始化及最大连接数 -->
<property name="initialSize" value="10"/>
<property name="maxActive" value="20"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mappers/test.xml"/>
</mappers>
</configuration>