[Mybatis]使用Mybaits的插件来配置多数据源(dynamicDatasource)

多数据源典型使用场景

  1. 业务复杂(数据量大):业务复杂就需要拆分,伴随着的数据库也进行拆分,就涉及到了多个数据库
  2. 读写分离:为了解决数据库读性能平静(都比写性能更高,写锁会影响读阻塞,从而影响读的性能)

用法

  1. 导入依赖
 <dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
     <!--我用的version是3.4.0,请根据自己项目的其他依赖版本选出合适的version-->
     <version>${dynamic-datasource-spring-boot-starter-version}</version> 
 </dependency>
  1. 在配置文件中导入多个数据库
spring:
  datasource:
    dynamic:
      # 默认数据源
      primary: datasource1
      datasource:
        datasource1:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/datasource1?serverTimezone=Asia/Shanghai
          username: root
          password: xxx
          druid-type: com.alibaba.druid.pool.DruidDataSource
        datasource2:
          type: com.alibaba.druid.pool.DruidDataSource
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/datasoutce2?serverTimezone=Asia/Shanghai
          username: root
          password: xxx
          dynamic-type: com.baomidou.dynamic.datasource.spring.boot.autoconfigure.druid.DruidDataSource

要注意的是,两个数据库的type内容不能相同,否则会报错
3. 在Mapper文件中添加注解

@DS("datasource2")
@Mapper
public interface XxxMapper{
    
    
}

这里DS注解的value就是要操作的数据库,比如XxxMapper在datasource2中,就填入datasource2
我们在上述配置文件中加入了默认数据库,也就是说,如果当前Mapper是在默认数据库中的话,就不需要添加这个注解了

这样就可以轻松的配置多数据源了

猜你喜欢

转载自blog.csdn.net/qq_67548292/article/details/131904437