news 2026/2/26 5:41:28

MyBatis Plus 中常用的插件列表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MyBatis Plus 中常用的插件列表

一、MyBatis Plus 官方插件列表

  1. 核心插件(InnerInterceptor 实现类)

    (1)分页插件

    PaginationInnerInterceptor

    (2)乐观锁插件

    OptimisticLockerInnerInterceptor

    (3)防止全表更新与删除插件

    BlockAttackInnerInterceptor

    (4)SQL 性能规范插件

    IllegalSQLInnerInterceptor

    (5)动态表名插件

    DynamicTableNameInnerInterceptor

    (6)多租户插件

    TenantLineInnerInterceptor

    (7)数据权限插件

    DataPermissionInterceptor// 已废弃,推荐使用 TenantLineInnerInterceptor 或自定义

    (8)字段加解密插件

    EncryptorInnerInterceptor// v3.5.0+ 版本提供

    (9)关联查询插件(已废弃)

    innerInterceptor(newJsqlParserCountOptimize())
  2. 其他重要插件和组件

    (10)SQL 注入器(不是插件,但功能类似)

    ISqlInjector
    • LogicSqlInjector - 逻辑删除注入器
    • DefaultSqlInjector - 默认注入器
    • 可自定义实现,用于注入自定义方法

    (11)主键生成器

    IdentifierGenerator
    • DefaultIdentifierGenerator - 默认(雪花算法)
    • CustomIdGenerator - 自定义
    • UUID - UUID 生成器

    (12)ID 类型处理器

    在这里插入代码片

    控制主键生成策略

    (13)元对象处理器

    MetaObjectHandler

    用于自动填充字段(如 create_time, update_time)

    (14)性能分析插件(已废弃,推荐使用 p6spy)

    PerformanceInterceptor// 已废弃

完整配置示例(包含所有可用插件)

@ConfigurationpublicclassMybatisPlusConfig{@BeanpublicMybatisPlusInterceptormybatisPlusInterceptor(){MybatisPlusInterceptorinterceptor=newMybatisPlusInterceptor();// 1. 多租户插件(必须最先添加)interceptor.addInnerInterceptor(tenantLineInnerInterceptor());// 2. 动态表名插件interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor());// 3. 分页插件interceptor.addInnerInterceptor(newPaginationInnerInterceptor(DbType.MYSQL));// 4. 乐观锁插件interceptor.addInnerInterceptor(newOptimisticLockerInnerInterceptor());// 5. 字段加解密插件(v3.5.0+)// interceptor.addInnerInterceptor(new EncryptorInnerInterceptor());// 6. 防止全表更新与删除插件interceptor.addInnerInterceptor(newBlockAttackInnerInterceptor());// 7. SQL 性能规范插件interceptor.addInnerInterceptor(newIllegalSQLInnerInterceptor());returninterceptor;}// 多租户配置@BeanpublicTenantLineInnerInterceptortenantLineInnerInterceptor(){returnnewTenantLineInnerInterceptor(newTenantLineHandler(){@OverridepublicExpressiongetTenantId(){returnnewLongValue(1L);// 实际应从上下文获取}@OverridepublicStringgetTenantIdColumn(){return"tenant_id";}@OverridepublicbooleanignoreTable(StringtableName){return"sys_config".equals(tableName);// 忽略系统配置表}});}// 动态表名配置@BeanpublicDynamicTableNameInnerInterceptordynamicTableNameInnerInterceptor(){DynamicTableNameInnerInterceptorinterceptor=newDynamicTableNameInnerInterceptor();Map<String,TableNameHandler>handlerMap=newHashMap<>();handlerMap.put("order",(sql,tableName)->{// 动态表名逻辑returntableName+"_2024";});interceptor.setTableNameHandlerMap(handlerMap);returninterceptor;}// 自动填充处理器@BeanpublicMetaObjectHandlermetaObjectHandler(){returnnewMetaObjectHandler(){@OverridepublicvoidinsertFill(MetaObjectmetaObject){this.strictInsertFill(metaObject,"createTime",LocalDateTime.class,LocalDateTime.now());this.strictInsertFill(metaObject,"updateTime",LocalDateTime.class,LocalDateTime.now());}@OverridepublicvoidupdateFill(MetaObjectmetaObject){this.strictUpdateFill(metaObject,"updateTime",LocalDateTime.class,LocalDateTime.now());}};}// 自定义主键生成器@BeanpublicIdentifierGeneratoridGenerator(){returnnewCustomIdGenerator();}// 自定义 SQL 注入器@BeanpublicMybatisPlusPropertiesCustomizerplusPropertiesCustomizer(){returnplusProperties->plusProperties.getGlobalConfig().setSqlInjector(newMySqlInjector());}}// 自定义 ID 生成器classCustomIdGeneratorimplementsIdentifierGenerator{@OverridepublicNumbernextId(Objectentity){// 返回自定义 IDreturnSnowFlakeUtil.nextId();}@OverridepublicStringnextUUID(Objectentity){returnUUID.randomUUID().toString().replaceAll("-","");}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/20 12:52:41

转录组研究攻略|常见可视化结果解读

随着测序技术的飞速发展&#xff0c;常规转录组测序凭借高通量、低成本、周期短的显著优势&#xff0c;已成为生命科学研究的“入门级”组学技术&#xff0c;广泛应用于农学、医学等领域&#xff0c;更是解析基因表达调控、挖掘功能基因的核心手段。但不少科研人常会陷入测序完…

作者头像 李华
网站建设 2026/2/25 0:38:58

新增AI引擎!快快网络联合集美大学共建工业智能与网络安全创新实验室

12月15日&#xff0c;快快网络与集美大学共建“工业智能与网络安全创新实验室”授牌仪式隆重举行。集美大学计算机工程学院院长王宗跃、副院长付永刚&#xff0c;快快网络COO兼快快研究院院长姚鳗芸、总经理张功洪、人力资源总监杨玉群出席活动&#xff0c;共同见证这一重要时刻…

作者头像 李华
网站建设 2026/2/25 15:51:05

5.3 从零构建MCP Server:实现文件处理与数据库访问

5.3 从零构建MCP Server:实现文件处理与数据库访问 在前两节中,我们深入了解了MCP协议的核心概念和架构角色。现在,我们将动手实践,从零开始构建一个功能全面的MCP Server,重点实现文件处理和数据库访问功能,为AI工具提供强大的本地上下文支持。 MCP Server架构设计 首…

作者头像 李华
网站建设 2026/2/22 3:54:46

PapersGPT for Zotero 完整安装与使用指南:让文献管理更智能

PapersGPT for Zotero 完整安装与使用指南&#xff1a;让文献管理更智能 【免费下载链接】papersgpt-for-zotero Zotero chat PDF with DeepSeek, GPT, ChatGPT, Claude, Gemini 项目地址: https://gitcode.com/gh_mirrors/pa/papersgpt-for-zotero PapersGPT for Zoter…

作者头像 李华
网站建设 2026/2/24 2:46:24

7.3 任务分解与管理:利用Cursor Memory Bank和Claude Code自定义命令

7.3 任务分解与管理:利用Cursor Memory Bank和Claude Code自定义命令 在前两节中,我们学习了AI工具的整合和大模型的高级分析能力。本节将专注于任务分解与管理,深入探讨如何利用Cursor的Memory Bank和Claude Code的自定义命令来有效管理复杂的开发任务。 任务分解的重要性…

作者头像 李华