MyBatisPlus常用配置有哪些?第三篇你都看了吗?

51 次浏览次阅读
没有评论

MyBatisPlus常用配置深度解析:第三篇核心技巧全掌握

如果你已经看过前两篇MyBatisPlus实战指南,那么恭喜你完成了ORM框架的筑基修炼!本篇将带你直击开发中最核心的配置实战,从全局参数到CRUD策略,从分页插件到逻辑删除,那些文档里不会告诉你的最佳实践都在这里。准备好解锁MyBatisPlus的完整战力了吗?

一、全局配置:框架运转的神经中枢

1.1 核心参数配置

@Configuration
public class MybatisPlusConfig {
    
    @Bean
    public GlobalConfig globalConfig() {
        GlobalConfig config = new GlobalConfig()
            .setBanner(false) // 关闭启动Banner
            .setDbConfig(new GlobalConfig.DbConfig()
                .setColumnFormat("`%s`")  // 字段自动转义
                .setTablePrefix("tbl_")    // 统一表前缀
            );
        return config;
    }
}

关键配置解析:

  • tablePrefix:动态表名前缀,完美支持分表场景
  • columnFormat:字段格式化,防止SQL保留字冲突
  • idType:全局ID生成策略(推荐ASSIGN_ID)

1.2 SQL执行监控

启用性能分析插件拦截慢查询:

<property name="configuration">
  <bean class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
    <property name="plugins">
      <array>
        <bean class="com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor">
          <property name="maxTime" value="1000"/>
          <property name="format" value="true"/>
        </bean>
      </array>
    </property>
  </bean>
</property>

二、CRUD策略配置:让基础操作更智能

2.1 字段自动填充

实现MetaObjectHandler处理审计字段:

public class AutoFillHandler implements MetaObjectHandler {
    
    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
        this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
    }
}

2.2 逻辑删除实战

配置逻辑删除与数据恢复方案:

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: deleted   逻辑删除字段
      logic-not-delete-value: 0     未删除值
      logic-delete-value: 1         删除值

注意事项:

  • 需在实体字段添加@TableLogic注解
  • 查询条件自动过滤已删除数据
  • 支持deleteById物理删除(需特殊处理)

三、高阶插件配置:解锁企业级功能

3.1 分页插件深度优化

@Bean
public MybatisPlusInterceptor paginationInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    PaginationInnerInterceptor pagination = new PaginationInnerInterceptor();
    pagination.setOptimizeJoin(true);  // 优化关联查询
    pagination.setMaxLimit(1000L);     // 单页最大记录数
    interceptor.addInnerInterceptor(pagination);
    return interceptor;
}

3.2 多租户方案实现

通过TenantLineInnerInterceptor实现数据隔离:

public class TenantInterceptor extends TenantLineInnerInterceptor {
    
    public TenantInterceptor(String tenantIdColumn) {
        this.setTenantLineHandler(new TenantLineHandler() {
            @Override
            public Expression getTenantId() {
                return new StringValue(RequestContext.getTenantId());
            }
            
            @Override
            public boolean ignoreTable(String tableName) {
                return !"user".equals(tableName); // 指定需要过滤的表
            }
        });
    }
}

四、生产环境最佳实践

4.1 配置优先级管理

  1. 注解配置 > XML配置 > YAML配置
  2. 局部配置覆盖全局配置
  3. 测试环境开启SQL日志,生产环境关闭

4.2 性能调优参数

  • mapper-locations:指定XML路径减少扫描耗时
  • default-enum-type-handler:枚举转换优化
  • aggressive-lazy-loading:延迟加载策略

最后提醒:记得结合第二篇的注解使用技巧,配置与注解双剑合璧才能真正发挥MyBatisPlus的全部威力。现在就去检查你的项目配置,让这些最佳实践为你的系统保驾护航!

正文完
 0

辉哥

一言一句话
-「
最新文章
2026年抖音小店新手期考试答案是什么?多久自动通过?

2026年抖音小店新手期考试答案是什么?多久自动通过?

2026年抖音小店新手期考试答案是什么?多久自动通过? 抖音小店新手期是每位新商家必须经历的考核阶段,许多刚入...
2026年抖音即时零售怎么设置库存?可售库存为0怎么回事?

2026年抖音即时零售怎么设置库存?可售库存为0怎么回事?

2026年抖音即时零售怎么设置库存?可售库存为0怎么回事? 2026年,抖音即时零售已经成为商家争夺本地流量的...
2026年淘宝618怎么报名?有哪些核心优惠?

2026年淘宝618怎么报名?有哪些核心优惠?

2026年淘宝618怎么报名?有哪些核心优惠? 淘宝618作为全年最重要的年中购物狂欢节之一,已经成为消费者和...
2026年淘宝聚划算是什么活动?多久举办一次?

2026年淘宝聚划算是什么活动?多久举办一次?

2026年淘宝聚划算是什么活动?多久举办一次? 淘宝聚划算作为阿里巴巴旗下的经典促销品牌,一直以“低价正品、超...
2026年淘宝访客少怎么优化?流量和访客哪个更重要?

2026年淘宝访客少怎么优化?流量和访客哪个更重要?

2026年淘宝访客少怎么优化?流量和访客哪个更重要? 2026年的淘宝生态越来越卷,很多卖家发现店铺访客数量持...
2026年京东618消费券发几次?活动持续多久?

2026年京东618消费券发几次?活动持续多久?

2026年京东618消费券发几次?活动持续多久? 随着电商平台的年中大促越来越受关注,京东618作为消费者最期...
2026年京东次日达会上门吗?赔偿标准怎么定?

2026年京东次日达会上门吗?赔偿标准怎么定?

2026年京东次日达会上门吗?赔偿标准怎么定? 2026年,京东次日达作为最受欢迎的快速配送服务之一,依然是很...
亚马逊店铺怎么装修?新手装修步骤是什么?

亚马逊店铺怎么装修?新手装修步骤是什么?

亚马逊店铺怎么装修?新手装修步骤是什么? 在亚马逊平台上,一个精心装修的店铺能显著提升品牌形象、吸引流量并提高...
亚马逊店铺可以转让吗?是否支持过户?

亚马逊店铺可以转让吗?是否支持过户?

亚马逊店铺可以转让吗?是否支持过户?2025最新解析 在跨境电商领域,亚马逊作为全球最大平台之一,许多卖家在经...
京东618买手机真的划算吗?苹果一般降多少?

京东618买手机真的划算吗?苹果一般降多少?

京东618买手机真的划算吗?苹果一般降多少? 随着2025年京东618购物节火热进行中,无数消费者都在纠结:京...
京东618会比国补还便宜吗?整体优惠力度如何?

京东618会比国补还便宜吗?整体优惠力度如何?

京东618会比国补还便宜吗?整体优惠力度如何? 618购物节作为京东年度最大促销活动之一,每年都引发消费者热议...