首页 > 作文

springboot集成mybatis plus和dynamic

更新时间:2023-04-04 11:04:38 阅读: 评论:0

目录
springboot集成mybatis plus和dynamic-datasource注意事项环境注意事项springboot mybatis plus多数据源配置整合dynamic-datasourcepro文件引入依赖application.yml配置修改application启动类创建mybatisplusconfig创建mapper接口测试类测试

springboot集成mybatis plus和dynamic-datasource注最最最言情小说意事项

环境

spring-boot-starter-parent 1.5.2.releamybatis-plus-boot-starter 2.xdynamic-datasource-spring-boot-starter 2.5.0druid-spring-boot-starter 1.1.10

注意事项

@springbootapplication(exclude = druiddatasourceautoconfigure.class)

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

开启批量执行sql的方法

# 方法1:升级版本, 如2.5.0spring: datasource:  dynamic:   druid:    wall:     nonebastatementallow: 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>      &神鹤丹丹lt;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>      <arti广州 公园factid>lombok</artifactid>      <version>1.18.20</version>    </dependency>

application.yml配置

spring: datasource:  dynamic:   primary: master #设置默认数据源或数据源组,master默认值(数据源名称可以随意起名,没有固定值,eg:db1,db2)   strict: fal #设置严格模式,默认fal不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.   datasource:    master:     driver-class-name: com.mysql.cj.jdbc.driver     url: jdbc:mysql://192.168.3.220:3306/mchou_test1?uunicode=true&characterencoding=utf-8     urname: *****     password: *****    slave_1:     driver-class-name: com.mysql.cj.jdbc.driver     url: jdbc:mysql://112.30.184.149:3306/net_trans_sup_hefei_edi?uunicode=true&characterencoding=utf-8&rvertimezone=asia/shanghai     urname: *****     password: *****    slave_2:     driver-class-name: com.mysql.cj.jdbc.driver     url: jdbc:mysql://120.55.168.100:33066/net_trans_sup_hefei_edi?uunicode=true&characterencoding=utf-8&rvertimezone=asia/shanghai     urname: *****     password: *****mybatis-plus:# configuration:#  log-impl: org.apache.ibatis.logging.stdout.stdoutimpl #org.apache.ibatis.logging.slf4j.slf4jimpl mapper-locations: classpath:mapper/*.xml #配置mybatis.xml文件路劲 classpath根路径 global-config:  # 逻辑删除配置  db-config:   # 删除后   logic-delete-value: 1   # 删除前   logic-not-delete-value: 0

修改application启动类

@springbootapplication(exclude = {druiddatasourceautoconfigure.class})

这里要排除druiddatasourceautoconfigure ,因为druiddatasourceautoconfigure会注入一个datasourcewrapper,其会在原生的spring.datasource下找url,urname,password等。而我们动态数据源的配置路径是变化的。

创建mybatisplusconfig

@configuration@enabletransactionmanagement@mapperscan("com.example.md5_demo.com.db.**.mapper")public class mybatisplusconfig {  /**  * sql 执行性能分析插件  * 开发环境使用,线上不推荐。 maxtime 指的是 sql 最大执行时长  */  @bean  @profile({"dev起名方法","test"})// 设置 dev test 环境开启  public performanceinterceptor performanceinterceptor() {    performanceinterceptor performanceinterceptor = new performanceinterceptor();    performanceinterceptor.tmaxtime(100000);//ms,超过此处设置的ms则sql不执行    performanceinterceptor.tformat(true);    return performanceinterceptor;  }  /**  * 逻辑删除插件  */  @bean  public isqlinjector sqlinjector() {    return new logicsqlinjector();  }  /**  * 分页插件  */  @bean  public paginationinterceptor paginationinterceptor() {    return new paginationinterceptor();  }}

创建mapper接口

@mapperpublic interface demomapper extends bamapper<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或者rvice都可以添加,建议只在一个方法上添加即可。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 11:04:36,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/c51ae5db290004bee3ac5b843f741709.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:springboot集成mybatis plus和dynamic.doc

本文 PDF 下载地址:springboot集成mybatis plus和dynamic.pdf

标签:数据源   方法   注解   插件
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图