mp的切换多数据源

spring:
  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      datasource:
        master:
          url: jdbc:mysql://xxxxxx:xxxx/xxx?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
          username: xxxx
          password: xxxx
          driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
        slave_1:
          url: jdbc:mysql://localhost:3306/rewang?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver

注解@DS("库名")  

方法上大于类上

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis Plus(简称MP)支持多数据源配置和分页功能。下面是一种实现多数据源分页的方法: 1. 配置多数据源: 在你的配置文件中,可以配置多个数据源,例如在 `application.yml` 中配置两个数据源: ```yaml spring: datasource: primary: url: jdbc:mysql://localhost:3306/db1 username: user1 password: password1 secondary: url: jdbc:mysql://localhost:3306/db2 username: user2 password: password2 ``` 2. 创建多个数据源: 在你的代码中,你需要创建多个数据源,并将其注入到 `SqlSessionFactory` 中。这可以通过使用 `DruidDataSource` 和 `MybatisSqlSessionFactoryBean` 实现。例如: ```java @Configuration public class DataSourceConfig { @Primary @Bean(name = "primaryDataSource") @ConfigurationProperties(prefix = "spring.datasource.primary") public DataSource primaryDataSource() { // 创建第一个数据源 return DruidDataSourceBuilder.create().build(); } @Bean(name = "secondaryDataSource") @ConfigurationProperties(prefix = "spring.datasource.secondary") public DataSource secondaryDataSource() { // 创建第二个数据源 return DruidDataSourceBuilder.create().build(); } @Bean(name = "sqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("primaryDataSource") DataSource primaryDataSource, @Qualifier("secondaryDataSource") DataSource secondaryDataSource) throws Exception { MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean(); // 设置数据源 Map<Object, Object> dataSourceMap = new HashMap<>(); dataSourceMap.put("primary", primaryDataSource); dataSourceMap.put("secondary", secondaryDataSource); DynamicDataSource dynamicDataSource = new DynamicDataSource(); dynamicDataSource.setTargetDataSources(dataSourceMap); dynamicDataSource.setDefaultTargetDataSource(primaryDataSource); sessionFactory.setDataSource(dynamicDataSource); // 设置Mapper扫描路径 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sessionFactory.setMapperLocations(resolver.getResources("classpath*:mapper/**/*.xml")); return sessionFactory.getObject(); } } ``` 3. 创建分页查询方法: 在你的 Mapper 接口中,可以使用 MyBatis Plus 提供的分页查询方法。例如: ```java @Repository public interface UserMapper extends BaseMapper<User> { // 使用 MyBatis Plus 提供的分页查询方法 IPage<User> selectUserPage(Page<User> page, @Param("name") String name); } ``` 4. 使用分页查询: 在你的 Service 或 Controller 中,可以使用 `Page` 类来配置分页参数,并将其传递给 Mapper 接口的分页查询方法。例如: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public IPage<User> getUserPage(int pageNum, int pageSize, String name) { // 创建分页对象 Page<User> page = new Page<>(pageNum, pageSize); // 调用分页查询方法 IPage<User> userPage = userMapper.selectUserPage(page, name); return userPage; } } ``` 以上是一种实现 MyBatis Plus 多数据源分页的方法。你可以根据自己的实际情况进行调整和修改。希望能对你有所帮助!如有疑问,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值