? 基于工作上班累死了。。。打开自己电脑 不知道干些啥 就康康 PL 网站康康 更新了啥
? 咦~~~还挺多 看到了多数据源集成 挺简单的 来玩玩看看
dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。其支持 Jdk 1.7+, SpringBoot 1.4.x 1.5.x 2.x.x。
_ 分割的数据源 首部 即为组的名称,相同组名称的数据源会放在一个组下。spring.datasource.dynamic.primary 修改。<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
		// 多数据源依赖
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>2.5.5</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.4.1</version>
        </dependency>
    </dependencies>
配置数据源。
spring:
  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
      datasource:
        master:
          url: jdbc:mysql://xxxxxxxx:3310/picture
          username: root
          password: 123456
          driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
        slave_1:
          url: jdbc:mysql://xxxxxxxx:3310/picture
          username: root
          password: 123456
          driver-class-name: com.mysql.jdbc.Driver
        slave_2:
            url: ENC(xxxxx) # 内置加密,使用请查看详细文档
            username: ENC(xxxxx)
            password: ENC(xxxxx)
            driver-class-name: com.mysql.jdbc.Driver
            schema: db/schema.sql # 配置则生效,自动初始化表结构
            data: db/data.sql # 配置则生效,自动初始化数据
            continue-on-error: true # 默认true,初始化失败是否继续
            separator: ";" # sql默认分号分隔符
        #......省略
        #以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2
#mybatisplus的配置
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath:mapper/*Mapper.xml
  global-config:
    db-config:
      id-type: auto
其它配置格式
# 多主多从                      纯粹多库(记得设置primary)                   混合配置
spring:                               spring:                               spring:
  datasource:                           datasource:                           datasource:
    dynamic:                              dynamic:                              dynamic:
      datasource:                           datasource:                           datasource:
        master_1:                             mysql:                                master:
        master_2:                             oracle:                               slave_1:
        slave_1:                              sqlserver:                            slave_2:
        slave_2:                              postgresql:                           oracle_1:
        slave_3:                              h2:                                   oracle_2:
使用 @DS 切换数据源。
@DS 可以注解在方法上和类上,同时存在方法注解优先于类上注解。
强烈建议只注解在service实现上。
| 注解 | 结果 | 
|---|---|
| 没有@DS | 默认数据源 | 
| @DS("dsName") | dsName可以为组名也可以为具体某个库的名称 | 

/**
* ClassName: Loginfo
* Description: 杨不易网站 :www.yangbuyi.top
* date: 2020/12/13
* @author TeouBle
* @author yangbuyi
* @since JDK 1.8
**/
@Service(value = "LoginServiceImpl")
public class LoginServiceImpl extends ServiceImpl<LoginMapper, Login> implements LoginService{
	/**
	 * 主数据库
	 * */
	@Autowired
	private LoginMapper loginMapper;
	@Override
	public List<Login> loginList() {
		return loginMapper.selectList(null);
	}
}
package top.yangbuyi.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import top.yangbuyi.domain.Login;
import top.yangbuyi.mapper.LoginMapper;
import top.yangbuyi.service.LoginService;
import java.util.List;
/**
 * ClassName: Loginfo
 * Description: 杨不易网站 :www.yangbuyi.top
 * date: 2020/12/13
 *
 * @author TeouBle
 * @author yangbuyi
 * @since JDK 1.8
 **/
@Service(value = "LoginServiceSlaveImpl")
@DS("slave_1") // 从数据源名称
public class LoginServiceSlaveImpl extends ServiceImpl<LoginMapper, Login> implements LoginService {
	@Autowired
	private LoginMapper loginMapper;
	/**
	 * 从数据库
	 * */
	@Override
	public List<Login> loginList() {
		return loginMapper.selectList(null);
	}
}

[研究]SpringBoot-MybatisPlus-Dynamic(多数据源)
原文:https://www.cnblogs.com/Yangbuyi/p/14130650.html