MyBatis插件可拦截的四大核心对象是Executor、StatementHandler、ParameterHandler和ResultSetHandler;Executor负责SQL执行调度与缓存,StatementHandler处理SQL构建与执行,ParameterHandler设置参数,ResultSetHandler映射结果集,覆盖完整SQL生命周期。

MyBatis 插件可拦截的四大核心对象是:
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
Executor
负责 SQL 执行的整体调度,包括事务管理、缓存处理、调用 StatementHandler 执行语句等。拦截它适合做读写分离、执行耗时统计、缓存增强或全局执行控制。
StatementHandler
负责 SQL 语句的构建、预编译(prepare)、参数绑定(parameterize)和实际执行(query/update)。拦截它能修改 SQL 文本、实现分页重写(如 PageHelper)、动态表名路由或 SQL 审计。
ParameterHandler
专门处理 SQL 参数的设置,核心方法是 setParameters(PreparedStatement)。拦截它可用于统一加解密参数、空值默认填充、审计敏感字段传参行为。
ResultSetHandler
负责将 JDBC 的 ResultSet 映射为 Java 对象(如 List
这四个对象覆盖了 MyBatis 从接收到查询请求,到生成 SQL、设置参数、执行语句,再到封装结果的完整生命周期。每个对象都对应明确的拦截时机和典型扩展场景,插件通过 @Intercepts + @Signature 精准声明拦截目标,再由 JDK 动态代理在运行时织入逻辑。

















