SpringBoot 通过配置类的方式配置 MybatisPlus

有时候因为某些原因,配置文件的配置无法满足我们的要求(如2个mapper要查询不同的数据库)可以通过配置类的形势配置2个mapper查询不同的数据库:

示例:有3个mapper接口要查询不同的数据库

1 配置文件配置3个mapper的数据库配置

spring:
  datasource:
    db1:
      driver-class-name: com.mysql.cj.jdbc.Driver
      jdbc-url: jdbc:mysql://localhost:3306/db1?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
      username: root
      password: root
    db2:
      driver-class-name: com.mysql.cj.jdbc.Driver
      jdbc-url: jdbc:mysql://localhost:3306/db2?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
      username: root
      password: root
    db3:
      driver-class-name: com.mysql.cj.jdbc.Driver
      jdbc-url: jdbc:mysql://localhost:3306/db3?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
      username: root
      password: root

2 新增加3个配置类配置

@Configuration
@MapperScan(basePackages = "org.gjw.mapper.db1",sqlSessionFactoryRef = "db1SqlSessionFactory")
public class MybatisPlusConfigDb1 {

    /**
     * 读取 spring.datasource.db1的数据库配置
     **/
    @Bean("db1Datasource")
    @ConfigurationProperties(prefix = "spring.datasource.db1")
    public DataSource db1Datasource(){
        return new HikariDataSource();
    }

    @Bean("db1TransactionManager")
    public TransactionManager transactionManager(@Qualifier("db1Datasource") DataSource db1Datasource){
        //设置 transactional 事务
        return new DataSourceTransactionManager(db1Datasource);
    }

    @Bean("db1SqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("db1Datasource") DataSource db1Datasource) throws Exception {
        //注意这里是mybatis-plus内的 SqlSessionFactoryBean
        MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
        //设置datasource
        sqlSessionFactoryBean.setDataSource(db1Datasource);
        //获取mapper资源 
        Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/db1/**/*.xml"); 
        //设置mapper的位置,注意3个mepper对应的xml得分别放在3个不同的包
        sqlSessionFactoryBean.setMapperLocations(resources);

        //其他配置 ps:sqlSessionFactoryBean内可以配置yml的一切配置
        MybatisConfiguration mybatisConfiguration = new MybatisConfiguration();
        //是否下划线转驼峰
        mybatisConfiguration.setMapUnderscoreToCamelCase(false);
        //设置日志
        mybatisConfiguration.setLogImpl(StdOutImpl.class);
        //配置别名包
        sqlSessionFactoryBean.setTypeAliasesPackage("org.gjw.bean.db1"); 

        sqlSessionFactoryBean.setConfiguration(mybatisConfiguration);

        GlobalConfig globalConfig = GlobalConfigUtils.defaults();
        //关闭logo打印
        globalConfig.setBanner(false);
        sqlSessionFactoryBean.setGlobalConfig(globalConfig);
        //配置我们自定义的字段填充器如deleted字段,updateTime字段填充
        globalConfig.setMetaObjectHandler(new FieldMetaObjectHandler());
		
		//配置插件
		MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        paginationInnerInterceptor.setMaxLimit((long) -1);
        
        interceptor.addInnerInterceptor(paginationInnerInterceptor);
        sqlSessionFactoryBean.setPlugins(interceptor);
        return  sqlSessionFactoryBean.getObject();
    }


    @Bean("db1SqlSessionTemplate")
    public SqlSessionTemplate db1SqlSessionTemplate(@Qualifier("db1SqlSessionFactory") SqlSessionFactory sqlSessionFactory ){
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}

其余2个参考则配置

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
SpringBoot MybatisPlus配置包括数据库连接池设置和mybatis相关配置。在数据库连接池设置中,需要指定数据库驱动、数据库URL、用户名和密码等信息。而在mybatis相关配置中,需要指定mapper文件的位置。同时,还可以使用内置全局拦截插件来提供智能分析阻断全表的delete和update操作,并可以自定义拦截规则以预防误操作。为了使用SpringBoot MybatisPlus,你需要在Maven依赖中添加相应的依赖项。一些常用的依赖项包括`mybatis-spring-boot-starter`和`mysql-connector-java`等。此外,还可以使用`lombok`和`mybatis-plus-boot-starter`来简化开发。这些依赖项的版本根据项目需求进行选择和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBoot MybatisPlus配置介绍](https://blog.csdn.net/weixin_43715360/article/details/131018951)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SpringBoot+Mybatis-Plus配置](https://blog.csdn.net/weixin_46565024/article/details/122804156)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值