一、概述
已知拦截器能够拦截四种类型:Executor、ParameterHandler、ResultSetHandler、StatementHandler。
1.1、不同类型拦截器的执行顺序
背景:不同类型
项目地址:https://github.com/bjlhx15/mybatis.git 中的mybatis-interceptor-001 基础项目
顺序【Executor→StatementHandler→ParameterHandler→ResultSetHandler】
1、编写拦截器代码
2、mybatis.xml配置
<plugins> <!-- 拦截器配置 --> <plugin interceptor="com.github.bjlhx15.mybatis.readwrite.split.mybatisinterceptor.TestTypeInterceptorParameterHandler"/> <plugin interceptor="com.github.bjlhx15.mybatis.readwrite.split.mybatisinterceptor.TestTypeInterceptorResultSetHandler"/> <plugin interceptor="com.github.bjlhx15.mybatis.readwrite.split.mybatisinterceptor.TestTypeInterceptorStatementHandler"/> <plugin interceptor="com.github.bjlhx15.mybatis.readwrite.split.mybatisinterceptor.TestTypeInterceptorExecutor"/> </plugins>
3、执行测试输出
TestTypeInterceptorExecutor
[2019-07-29 10:37:25:540-http-nio-8080-exec-1] [INFO] - com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:930) - {dataSource-1} inited
TestTypeInterceptorStatementHandler
[2019-07-29 10:37:29:827-http-nio-8080-exec-1] [DEBUG] - org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:145) - ==