SpringBoot+Mybatis+druid配置双数据源

最近因为公司业务,数据量比较大,需要进行数据库查询优化,于是采用了TiDB分布式数据库,使用集群的方式减轻数据库压力。

中间引入了双数据源处理,也走了很多弯路在此进行记录,仅供参考

1、pom.xml引入相关相关配置

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
            <scope>provided</scope>
        </dependency>

2、在application.yml文件配置相关连接配置

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    druid:
      master:
        url: jdbc:mysql://192.168.0.102:3306/spring_test1?useUnicode=true&characterEncoding=UTF-8&useSSL=false
        username: root
        password: root
      slave:
        url: jdbc:mysql://192.168.0.101:4000/sioo_test2?useUnicode=true&characterEncoding=UTF-8&useSSL=false
        username: root
        password: root
      #初始化大小,最小,最大
      initial-size: 5
      max-active: 10
      min-idle: 5
      #配置获取连接等待超时的时间
      max-wait: 6000
      #检测连接是否有效的sql
      validation-query: "select '1'"
      validation-query-timeout: 2000
      test-on-borrow: false
      test-on-return: false
      test-while-idle: true
      #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 600000
      #配置一个连接在池中最小生存的时间,单位是毫秒
      min-evictable-idle-time-millis: 300000
      remove-abandoned: true

一、采用分包进行隔离不同的数据源

  • 创建mapper.xml所对应的的mapper.class包(master、salve)

  • 创建mapper.xml所在包(master、salve)

  • 编写MasterDataSourcesConfig文件  
package com.whl.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import o
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值