导航
导航

mybatis拦截器

给券商公司提供技术解决方案时候网上查到这方面内容,spring拦截器使用的比较多,mybatis拦截器还是第一次了解(孤陋寡闻了)。

使用mybatis自定义拦截器,可以对执行的sql进行一层过滤包装。

步骤:

  • 实现org.apache.ibatis.plugin.Interceptor接口的拦截器类,并实现其中的方法。
  • 添加@Intercepts注解,写上需要拦截的对象和方法,以及方法参数。
  • 进行MyBatis配置,配置文件中添加拦截器。

mybatis拦截器有四种类型:Executor、StatementHandler、ParameterHandler和ResultSetHandler

总体概括为:

  • Executor提供了增删改查的接口.
  • StatementHandler负责处理Mybatis与JDBC之间Statement的交互.
  • ResultSetHandler负责处理Statement执行后产生的结果集,生成结果列表.
  • ParameterHandler是Mybatis实现Sql入参设置的对象。

Mybatis的拦截器是通过JDK动态代理实现

拦截器实现Mybatis分页的一个思路就是拦截StatementHandler接口的prepare方法。