Spring Boot3整合MyBatisPlus实现多数据源

Spring Boot3整合MyBatisPlus实现多数据源

Jammm
2025-11-10 / 0 评论 / 1 阅读 / 耗时: 48 ms / 正在检测是否收录...

1.导入多数据源pom依赖

<!-- 多数据源 -->
        <!-- https://mvnrepository.com/artifact/com.baomidou/dynamic-datasource-spring-boot3-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
            <version>4.3.1</version>
        </dependency>

2.配置数据库链接

spring:
  datasource:
    dynamic:
      #主要数据库
      primary: master
      #严格匹配模式,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      strict: true
      datasource:
        master:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/database_1?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
          username: database_1
          password: database_1
          type: com.zaxxer.hikari.HikariDataSource
        account:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/database_2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8
          username: database_2
          password: database_2
          type: com.zaxxer.hikari.HikariDataSource
        charac:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/database_3?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8
          username: database_3
          password: database_3
          type: com.zaxxer.hikari.HikariDataSource
        postal:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/database_4?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
          username: database_4
          password: database_4
          type: com.zaxxer.hikari.HikariDataSource

3.在Mapper上标注@DS

比如我这个mapper是Account数据库

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jam.entities.gameEntities.Accounts;
import org.springframework.stereotype.Repository;

@DS("account")
@Repository
public interface AccountsMapper extends BaseMapper<Accounts> {
}

4.在启动器标注扫描Mapper

@MapperScan("com.jam.mapper.**")

@SpringBootApplication
@EnableCaching
@MapperScan("com.jam.mapper.**")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}
本文共 73 个字数,平均阅读时长 ≈ 1分钟
0

打赏

海报

正在生成.....

评论 (0)

取消