Module bus.mapper

Class MybatisInterceptor

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
  • Constructor Details

    • MybatisInterceptor

      public MybatisInterceptor()
  • Method Details

    • intercept

      public Object intercept(org.apache.ibatis.plugin.Invocation invocation) throws Throwable
      拦截方法,处理 MyBatis 的 Executor 和 StatementHandler 调用
      Specified by:
      intercept in interface org.apache.ibatis.plugin.Interceptor
      Parameters:
      invocation - 拦截调用信息
      Returns:
      拦截处理后的结果
      Throws:
      Throwable - 如果拦截过程中发生异常
    • plugin

      public Object plugin(Object target)
      插件方法,决定是否对目标对象进行代理
      Specified by:
      plugin in interface org.apache.ibatis.plugin.Interceptor
      Parameters:
      target - 目标对象
      Returns:
      代理对象或原对象
    • addHandler

      public void addHandler(MapperHandler handler)
      添加自定义处理器
      Parameters:
      handler - 自定义处理器实例
    • setHandlers

      public void setHandlers(List<MapperHandler> handlers)
      设置处理器列表(兼容旧版本 MybatisPluginBuilder)
      Parameters:
      handlers - 处理器列表
    • getHandlers

      public List<MapperHandler> getHandlers()
      获取处理器列表
      Returns:
      处理器列表副本
    • setProperties

      public void setProperties(Properties properties)
      设置属性配置,动态创建和配置处理器
      Specified by:
      setProperties in interface org.apache.ibatis.plugin.Interceptor
      Parameters:
      properties - 配置属性