MybatisPlus多数据源

2023-12-16 13:29:27

主要介绍MybatisPlus多数据源的简单应用,更多可参考MyBatisPlus多数据源

1 引入依赖

<!--多数据源-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>3.6.1</version>
</dependency>

2 配置多数据源

spring:
  # 配置数据源信息
  datasource:
    dynamic:
      # 设置默认的数据源或者数据源组,默认值即为master
      primary: master
      # 严格匹配数据源,默认false.true未匹配到指定数据源时抛异常,false使用默认数据源
      strict: false
      datasource:
        # 数据源一,主数据源
        master:
          url: jdbc:mysql://localhost:3306/db_mybatis_plus?characterEncoding=utf-8&useSSL=false
          driver-class-name: com.mysql.cj.jdbc.Driver
          username: root
          password: root
        # 数据源二
        product:
          url: jdbc:mysql://localhost:3306/db_mybatis_plus_dynamic_datasource?characterEncoding=utf-8&useSSL=false
          driver-class-name: com.mysql.cj.jdbc.Driver
          username: root
          password: root

3 使用 @DS 注解切换数据源

@DS 可以注解在方法上或类上,同时存在就近原则 方法上注解 优先于 类上注解。
如果没有@DS注解,则使用默认数据源,当存在@DS注解时,则使用其value属性指定的数据源。

@DS("product")
@Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
}
@DS("master")
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

4 测试多数据源

@SpringBootTest
@Slf4j
public class DynamicDataSourceTest {

    @Autowired
    private UserService userService;

    @Autowired
    private ProductService productService;

    @Test
    public void testDynamicDataSourceQuery(){
        List<User> userList = userService.list();
        userList.forEach(System.out::println);
        List<Product> productList = productService.list();
        productList.forEach(System.out::println);
    }

}

文章来源:https://blog.csdn.net/SUNBOYmxbsH/article/details/135031053
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。