首页 > 其他分享 >SpringBoot集成MyBatis-Plus实现多数据源操作

SpringBoot集成MyBatis-Plus实现多数据源操作

时间:2024-11-29 11:54:31浏览次数:10  
标签:jdbc SpringBoot spring mysql boot Plus com 数据源 true

添加依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.2</version>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.6.1</version>
        </dependency>
    </dependencies>

application.yml配置

spring:
  datasource:
    dynamic:
      primary: mater
      strict: false
      datasource:
        master:
          username: lichao
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://192.168.1.19:3306/seckill?useSSL=false&useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&autoReconnect=true&serverTimezone=Asia/Shanghai
        second:
          username: lichao
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://192.168.1.20:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&autoReconnect=true&serverTimezone=Asia/Shanghai

service层配置

  • 共用mapper层文件
@Service
@DS("master")
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;


    @Override
    public User getUserById(Integer id) {
        return userMapper.selectByPrimaryKey(id);
    }

    @Override
    @DS("second")
    public User getUserByIdFromSecondDB(Integer id) {
        return userMapper.selectByPrimaryKey(id);
    }
}

测试结果

测试结果符合预期,查询的数据是根据标记的数据库获取

image-20241129114923645

参考

标签:jdbc,SpringBoot,spring,mysql,boot,Plus,com,数据源,true
From: https://www.cnblogs.com/litayun/p/18576283

相关文章