MyBatis-Plus 提供了一系列强大的插件来增强 MyBatis 的功能,这些插件通过 MybatisPlusInterceptor
来实现对 MyBatis 执行过程的拦截和增强。以下是这些插件的详细介绍和使用方法。
MybatisPlusInterceptor 概览
MybatisPlusInterceptor
是 MyBatis-Plus 的核心插件,它代理了 MyBatis 的 Executor#query
、Executor#update
和 StatementHandler#prepare
方法,允许在这些方法执行前后插入自定义逻辑。
属性
MybatisPlusInterceptor
有一个关键属性 interceptors
,它是一个 List<InnerInterceptor>
类型的集合,用于存储所有要应用的内部拦截器。
InnerInterceptor 接口
所有 MyBatis-Plus 提供的插件都实现了 InnerInterceptor
接口,这个接口定义了插件的基本行为。目前,MyBatis-Plus 提供了以下插件:
- 自动分页:
PaginationInnerInterceptor
- 多租户:
TenantLineInnerInterceptor
- 动态表名:
DynamicTableNameInnerInterceptor
- 乐观锁:
OptimisticLockerInnerInterceptor
- SQL 性能规范:
IllegalSQLInnerInterceptor
- 防止全表更新与删除:
BlockAttackInnerInterceptor
使用示例
Spring 配置
在 Spring 配置中,你需要创建 MybatisPlusInterceptor
的实例,并将它添加到 MyBatis 的插件列表中。以下是一个分页插件的配置示例:
Spring Boot 配置
在 Spring Boot 项目中,你可以通过 Java 配置来添加插件:
mybatis-config.xml 配置
如果你使用的是 XML 配置,可以在 mybatis-config.xml
中添加插件:
拦截忽略注解 @InterceptorIgnore
@InterceptorIgnore
注解可以用来忽略某些插件的拦截。该注解有多个属性,分别对应不同的插件。如果某个属性没有值,则默认为 false
,表示不忽略该插件;如果设置为 true
,则忽略对应的插件。
手动设置拦截器忽略执行策略
从 3.5.3
版本开始,你可以手动设置拦截器的忽略执行策略,这比注解更加灵活。但是,你需要手动关闭调用方法。
本地缓存 SQL 解析
MyBatis-Plus 支持本地缓存 SQL 解析,这对于分页、租户等插件特别有效。你可以通过静态代码块来设置缓存处理类:
以上是 MyBatis-Plus 插件主体的详细介绍和使用方法。通过这些插件,你可以大大增强 MyBatis 的功能,提高开发效率。
© 2016-2024 Baomidou™. All Rights Reserved.
Power by Astro Starlight |
Sponsored by JetBrains
渝ICP备2021000141号-1 |
渝公网安备50011302222097