baomidou @DS注解

@DS 注解是 MyBatis-Plus 提供的一个注解,用于实现多数据源的动态切换。MyBatis-Plus 是一个增强的 MyBatis 框架,提供了许多实用的功能,其中之一就是多数据源支持。

使用场景

在实际开发中,可能会遇到需要访问多个数据库的情况。通过使用 @DS 注解,可以方便地在不同的数据源之间进行切换,而不需要手动管理数据源。

基本用法

  1. 引入依赖
    确保在项目中引入了 MyBatis-Plus 和多数据源的相关依赖。

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.x.x</version>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
        <version>3.x.x</version>
    </dependency>
    
  2. 配置数据源
    application.ymlapplication.properties 文件中配置多个数据源。

    spring:
      datasource:
        dynamic:
          primary: master # 设置默认的数据源
          datasource:
            master:
              url: jdbc:mysql://localhost:3306/master_db
              username: root
              password: root
              driver-class-name: com.mysql.cj.jdbc.Driver
            slave:
              url: jdbc:mysql://localhost:3306/slave_db
              username: root
              password: root
              driver-class-name: com.mysql.cj.jdbc.Driver
    
  3. 使用 @DS 注解
    在需要切换数据源的方法或类上使用 @DS 注解。

    import com.baomidou.dynamic.datasource.annotation.DS;
    import org.springframework.stereotype.Service;
    
    @Service
    public class UserService {
    
        @DS("master")
        public void useMasterDataSource() {
            // 使用 master 数据源的逻辑
        }
    
        @DS("slave")
        public void useSlaveDataSource() {
            // 使用 slave 数据源的逻辑
        }
    }
    

详细示例

假设我们有一个用户服务类 UserService,需要在不同的数据源之间进行切换:

import com.baomidou.dynamic.datasource.annotation.DS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    @DS("master")
    public List<User> getUsersFromMaster() {
        return userMapper.selectAll();
    }

    @DS("slave")
    public List<User> getUsersFromSlave() {
        return userMapper.selectAll();
    }
}

在这个示例中,getUsersFromMaster 方法会使用 master 数据源,而 getUsersFromSlave 方法会使用 slave 数据源。

注意事项

  1. 默认数据源:如果没有指定 @DS 注解,默认会使用配置文件中指定的默认数据源。
  2. 事务管理:确保在使用多数据源时正确配置事务管理器,以避免数据一致性问题。
  3. 数据源切换@DS 注解可以作用于类或方法上,方法上的注解优先级高于类上的注解。

通过使用 @DS 注解,可以方便地在不同的数据源之间进行切换,从而简化多数据源的管理和使用。

相关推荐

  1. SpringBoot注解

    2024-07-17 10:58:05       67 阅读
  2. 【Scala 】注解

    2024-07-17 10:58:05       49 阅读
  3. @Conditional注解

    2024-07-17 10:58:05       47 阅读
  4. Spring--注解

    2024-07-17 10:58:05       30 阅读
  5. SpringBoot注解

    2024-07-17 10:58:05       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 10:58:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 10:58:05       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 10:58:05       58 阅读
  4. Python语言-面向对象

    2024-07-17 10:58:05       69 阅读

热门阅读

  1. arkts中状态管理

    2024-07-17 10:58:05       25 阅读
  2. mac如何查看cpu和显卡温度

    2024-07-17 10:58:05       26 阅读
  3. 关于HBase、Phoenix、Flume、Maxwell 和 Flink

    2024-07-17 10:58:05       24 阅读
  4. 银河麒麟如何部署QtMqtt(入门案例教程)

    2024-07-17 10:58:05       24 阅读
  5. Android中ContentProvider学习记录

    2024-07-17 10:58:05       22 阅读
  6. IPython 宏魔法:%macro 命令的高效使用指南

    2024-07-17 10:58:05       25 阅读
  7. 五、python列表

    2024-07-17 10:58:05       26 阅读
  8. 大语言模型系列 - Transformer:从基础原理到应用

    2024-07-17 10:58:05       23 阅读