学习笔记:Mybatis整合Druid连接池

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&amp;userUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai&amp;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&amp;userUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai&amp;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>

猜你喜欢

转载自blog.csdn.net/qq_34800310/article/details/119336861