文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

springboot集成mybatis plus和dynamic-datasource的方法是什么

2023-06-26 03:42

关注

这篇文章主要介绍“springboot集成mybatis plus和dynamic-datasource的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot集成mybatis plus和dynamic-datasource的方法是什么”文章能帮助大家解决问题。

springboot集成mybatis plus和dynamic-datasource注意事项

环境

注意事项

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)

dynamic所有版本默认启用stat和wall过滤器(默认不支持批量执行sql, 并且有些低版本无法自定义)

开启批量执行sql的方法

# 方法1:升级版本, 如2.5.0spring:  datasource:    dynamic:      druid:         wall:          noneBaseStatementAllow: true          multiStatementAllow: true# 方法2:移除wall过滤器spring:  datasource:    dynamic:      druid:         filters: stat

现有项目集成mybatis plus时,应指定另外的枚举包,否则会出问题

mybatis-plus:  type-enums-package: com.zxkj.demo.enums.mp

springboot mybatis plus多数据源配置整合dynamic-datasource

pro文件引入依赖

       <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <scope>runtime</scope>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid-spring-boot-starter</artifactId>            <version>1.2.6</version>        </dependency>        <!--mybatis-plus-->        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-boot-starter</artifactId>            <version>3.1.2</version>        </dependency>        <!--主从配置依赖-->        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>            <version>2.5.6</version>        </dependency>        <!--lombok用来简化实体类:需要安装lombok插件-->        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <version>1.18.20</version>        </dependency>

application.yml配置

spring:  datasource:    dynamic:      primary: master #设置默认数据源或数据源组,master默认值(数据源名称可以随意起名,没有固定值,eg:db1,db2)      strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.      datasource:        master:          driver-class-name: com.mysql.cj.jdbc.Driver          url: jdbc:mysql://192.168.3.220:3306/mchouse_test1?useUnicode=true&characterEncoding=utf-8          username: *****          password: *****        slave_1:          driver-class-name: com.mysql.cj.jdbc.Driver          url: jdbc:mysql://112.30.184.149:3306/net_trans_sup_hefei_edi?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai          username: *****          password: *****        slave_2:          driver-class-name: com.mysql.cj.jdbc.Driver          url: jdbc:mysql://120.55.168.100:33066/net_trans_sup_hefei_edi?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai          username: *****          password: *****mybatis-plus:#  configuration:#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #org.apache.ibatis.logging.slf4j.Slf4jImpl  mapper-locations: classpath:mapper    @Bean    @Profile({"dev","test"})// 设置 dev test 环境开启    public PerformanceInterceptor performanceInterceptor() {        PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();        performanceInterceptor.setMaxTime(100000);//ms,超过此处设置的ms则sql不执行        performanceInterceptor.setFormat(true);        return performanceInterceptor;    }        @Bean    public ISqlInjector sqlInjector() {        return new LogicSqlInjector();    }        @Bean    public PaginationInterceptor paginationInterceptor() {        return new PaginationInterceptor();    }}

创建mapper接口

@Mapperpublic interface DemoMapper extends BaseMapper<Demo> {    List<Demo> getAllList();    @DS("slave_2")    List<Demo> getShopList();}

测试类测试

@SpringBootTestclass Md5DemoApplicationTests {    @Autowired    private DemoMapper demoMapper;    @Test    void contextLoads() {        List<Demo> list=demoMapper.getAllList();        System.out.println(list);        System.out.println("***************");        List<Demo> shopList=demoMapper.getShopList();        System.out.println(shopList);    }}

@DS优先级:方法 > 类

@DS 可以注解在方法上和类上,同时存在方法注解优先于类上注解,mapper或者service都可以添加,建议只在一个方法上添加即可。

关于“springboot集成mybatis plus和dynamic-datasource的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯