Mybatis-plus 多数据源配置

        首先废话不说,上核心依赖

             <!--Mysql数据库驱动-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-connector.version}</version>
            </dependency>

            <!--Sql Server的依赖-->
            <dependency>
                <groupId>com.microsoft.sqlserver</groupId>
                <artifactId>sqljdbc4</artifactId>
                <version>${sqljdbc4.version}</version>
            </dependency>

            <!-- 动态数据源 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
                <version>${dynamic.version}</version>
            </dependency>

             <!--集成druid连接池-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid.version}</version>
            </dependency>

yml配置

spring:
  autoconfigure:
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  datasource:
    druid:
      web-stat-filter:
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #不统计这些请求数据
      stat-view-servlet: #访问监控网页的登录用户名和密码
        login-username: druid
        login-password: druid
        url-pattern: /druid/*
        enabled: true
        allow:  #为空 或 默认 就是不限制ip访问
      #filters: stat,wall,logback
      #aop-patterns: com.rockit.epc.*.controller.*
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #设置严格模式,默认false不启动,启动后在未匹配到指定数据源时,会抛出异常,不启动则使用默认数据源
      druid: # 全局druid参数,单独数据源配置为空时取全局配置
        # 连接池的配置信息
        # 初始化大小,最小,最大
        initial-size: 1
        min-idle: 2
        maxActive: 8
        # 配置获取连接等待超时的时间
        maxWait: 60000
        # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
        timeBetweenEvictionRunsMillis: 60000
        # 配置一个连接在池中最小生存的时间,单位是毫秒
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        # 打开PSCache,并且指定每个连接上PSCache的大小
        poolPreparedStatements: true
        maxPoolPreparedStatementPerConnectionSize: 20
        # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
        filters: stat,wall,logback
        # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=3000
      datasource:
        master:  #默认数据源(mysql)
          url: jdbc:mysql://127.0.0.1:3306/rdccepc?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
          username: xxx
          password: xxx
          driver-class-name: com.mysql.cj.jdbc.Driver
          type: com.alibaba.druid.pool.DruidDataSource
          druid: #配置master 默认连接池参数
            # 连接池的配置信息
            # 初始化大小,最小,最大
            initial-size: 3
            min-idle: 3
            maxActive: 8
            # 配置获取连接等待超时的时间
            maxWait: 600000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            # 打开PSCache,并且指定每个连接上PSCache的大小
            poolPreparedStatements: true
            maxPoolPreparedStatementPerConnectionSize: 20
            # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
            filters: stat,wall,logback
            #Spring监控
            aop-patterns: com.rockit.epc.*.controller.*
            # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
            connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=3000
        sql-server: # sqlServer 数据源
          url: jdbc:sqlserver://127.0.0.1:1433;databaseName=BPMDB
          username: sa
          password: xxx
          type: com.alibaba.druid.pool.DruidDataSource
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
          druid: # 配置multi-datasource1 数据源连接池参数
            # 连接池的配置信息
            # 初始化大小,最小,最大
            initial-size: 2
            min-idle: 2
            maxActive: 2
            # 配置获取连接等待超时的时间
            maxWait: 600000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            validationQuery: SELECT 1
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            # 打开PSCache,并且指定每个连接上PSCache的大小
            poolPreparedStatements: true
            maxPoolPreparedStatementPerConnectionSize: 20
            # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
            filters: stat,wall,slf4j
            #Spring监控
            aop-patterns: com.rockit.epc.*.controller.*
            # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
            connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=3000

java代码中的使用,默认使用 master  数据源,使用 @DS("sql-server") 切换到指定数据源

package com.xxx.xxx.contract.service.impl;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.xxx.xxx.contract.entity.BPMInstConsign;
import com.xxx.xxx.contract.mapper.BPMInstConsignMapper;
import com.xxx.xxx.contract.service.BPMInstConsignService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.hutool.core.util.StrUtil;
import java.util.List;

/**
*  服务实现类
* @author zhoujk
* @since 2023-08-01
*/
@Service
@DS("sql-server") //指定sqlServer数据源
public class BPMInstConsignServiceImpl extends ServiceImpl<BPMInstConsignMapper, BPMInstConsign> implements BPMInstConsignService {
    @Autowired
    private BPMInstConsignMapper bPMInstConsignMapper;

    /**
    * 分页列表
    * @param param 根据需要进行传值
    * @return
    */
    @Override
    public Page<BPMInstConsign> page(Page reqPage,BPMInstConsign param) {
        QueryWrapper<BPMInstConsign> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda()
        .eq(param.getConsignID() != null, BPMInstConsign::getConsignID, param.getConsignID())
        .eq(param.getEnabled() != null, BPMInstConsign::getEnabled, param.getEnabled())
        .eq(param.getOwnerStepID() != null, BPMInstConsign::getOwnerStepID, param.getOwnerStepID())
        .eq(StrUtil.isNotBlank(param.getReturnType()), BPMInstConsign::getReturnType, param.getReturnType())
        .eq(StrUtil.isNotBlank(param.getRoutingType()), BPMInstConsign::getRoutingType, param.getRoutingType());
        Page<BPMInstConsign> page = page(reqPage, queryWrapper);
        return page;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值