java.lang.Object
org.miaixz.bus.mapper.handler.AbstractSqlHandler
org.miaixz.bus.mapper.handler.MybatisInterceptor
- All Implemented Interfaces:
org.apache.ibatis.plugin.Interceptor
@Signature(type=org.apache.ibatis.executor.statement.StatementHandler.class,method="getBoundSql",args={}) @Signature(type=org.apache.ibatis.executor.resultset.ResultSetHandler.class,method="handleResultSets",args=java.sql.Statement.class) @Signature(type=org.apache.ibatis.executor.statement.StatementHandler.class,method="prepare",args={java.sql.Connection.class,java.lang.Integer.class}) @Signature(type=org.apache.ibatis.executor.Executor.class,method="update",args={org.apache.ibatis.mapping.MappedStatement.class,java.lang.Object.class}) @Signature(type=org.apache.ibatis.executor.Executor.class,method="query",args={org.apache.ibatis.mapping.MappedStatement.class,java.lang.Object.class,org.apache.ibatis.session.RowBounds.class,org.apache.ibatis.session.ResultHandler.class}) @Signature(type=org.apache.ibatis.executor.Executor.class,method="query",args={org.apache.ibatis.mapping.MappedStatement.class,java.lang.Object.class,org.apache.ibatis.session.RowBounds.class,org.apache.ibatis.session.ResultHandler.class,org.apache.ibatis.cache.CacheKey.class,org.apache.ibatis.mapping.BoundSql.class})
public class MybatisInterceptor
extends AbstractSqlHandler
implements org.apache.ibatis.plugin.Interceptor
MyBatis SQL 拦截器
通过注册的处理器应用自定义逻辑处理 SQL 执行。 拦截 Executor 和 StatementHandler,处理查询、更新和 SQL 准备。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields inherited from class org.miaixz.bus.mapper.handler.AbstractSqlHandler
DEFAULT_REFLECTOR_FACTORY, DELEGATE_BOUNDSQL, DELEGATE_BOUNDSQL_SQL, DELEGATE_MAPPEDSTATEMENT, MAPPEDSTATEMENT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddHandler(MapperHandler handler) 添加自定义处理器获取处理器列表intercept(org.apache.ibatis.plugin.Invocation invocation) 拦截方法,处理 MyBatis 的 Executor 和 StatementHandler 调用插件方法,决定是否对目标对象进行代理voidsetHandlers(List<MapperHandler> handlers) 设置处理器列表(兼容旧版本 MybatisPluginBuilder)voidsetProperties(Properties properties) 设置属性配置,动态创建和配置处理器Methods inherited from class org.miaixz.bus.mapper.handler.AbstractSqlHandler
getMappedStatement, getMappedStatement, getMetaObject, getSqlParserInfo, mapperBoundSql, mapperStatementHandler, realTarget, setAdditionalParameter
-
Constructor Details
-
MybatisInterceptor
public MybatisInterceptor()
-
-
Method Details
-
intercept
拦截方法,处理 MyBatis 的 Executor 和 StatementHandler 调用- Specified by:
interceptin interfaceorg.apache.ibatis.plugin.Interceptor- Parameters:
invocation- 拦截调用信息- Returns:
- 拦截处理后的结果
- Throws:
Throwable- 如果拦截过程中发生异常
-
plugin
插件方法,决定是否对目标对象进行代理- Specified by:
pluginin interfaceorg.apache.ibatis.plugin.Interceptor- Parameters:
target- 目标对象- Returns:
- 代理对象或原对象
-
addHandler
添加自定义处理器- Parameters:
handler- 自定义处理器实例
-
setHandlers
设置处理器列表(兼容旧版本 MybatisPluginBuilder)- Parameters:
handlers- 处理器列表
-
getHandlers
获取处理器列表- Returns:
- 处理器列表副本
-
setProperties
设置属性配置,动态创建和配置处理器- Specified by:
setPropertiesin interfaceorg.apache.ibatis.plugin.Interceptor- Parameters:
properties- 配置属性
-