@Intercepts(value=@Signature(type=org.apache.ibatis.executor.Executor.class,method="update",args={org.apache.ibatis.mapping.MappedStatement.class,java.lang.Object.class}))
public class MybatisParameterInterceptor
extends AbstractMybatisInterceptor
MybatisParameterInterceptor 是一个 MyBatis 插件拦截器,用于在执行 SQL 更新操作(包括插入和更新)时,
对参数进行处理。该拦截器主要作用是通过解析 SQL 语句中的表名,并针对每个表名使用指定的MybatisFieldHandler
对相关参数进行处理。
该类继承自AbstractMybatisInterceptor,并实现了Intercepts注解所指定的拦截功能。
拦截的 SQL 操作为Executor.update(org.apache.ibatis.mapping.MappedStatement, java.lang.Object)方法,该方法用于执行插入或更新操作。
SqlCommandType.INSERT和SqlCommandType.UPDATE判断 SQL 操作类型。MybatisFieldHandler进行参数处理。AbstractMybatisInterceptor,
MybatisFieldHandler,
Executor,
MappedStatement| 构造器和说明 |
|---|
MybatisParameterInterceptor() |
| 限定符和类型 | 方法和说明 |
|---|---|
Object |
intercept(org.apache.ibatis.plugin.Invocation invocation)
拦截执行 SQL 更新操作的核心方法。
|
void |
registerParameterFieldHandler(MybatisFieldHandler handler)
注册一个
MybatisFieldHandler处理器,该处理器会在执行拦截操作时对参数进行处理。 |
doIntercept, parseTableNamesFromSql, parseTableNamesFromSql, parseTableNamesFromSqlpublic Object intercept(org.apache.ibatis.plugin.Invocation invocation) throws Throwable
invocation - 当前拦截的调用信息,包含方法参数等信息Throwable - 异常抛出public void registerParameterFieldHandler(MybatisFieldHandler handler)
MybatisFieldHandler处理器,该处理器会在执行拦截操作时对参数进行处理。handler - MybatisFieldHandler处理器实例Copyright © 2025 Awesome Java Web. All rights reserved.