Mybatis 拦截器
2016-07-23 11:48
447 查看
Mybatis定义了四种拦截器:
Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
ParameterHandler (getParameterObject, setParameters)
ResultSetHandler (handleResultSets, handleOutputParameters)
StatementHandler (prepare, parameterize, batch, update, query)
这四个类中的每一个方法都可以被拦截。
总体概括为:
拦截执行器的方法
拦截参数的处理
拦截结果集的处理
拦截Sql语法构建的处理
示例:
xml配置:
Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
ParameterHandler (getParameterObject, setParameters)
ResultSetHandler (handleResultSets, handleOutputParameters)
StatementHandler (prepare, parameterize, batch, update, query)
这四个类中的每一个方法都可以被拦截。
总体概括为:
拦截执行器的方法
拦截参数的处理
拦截结果集的处理
拦截Sql语法构建的处理
示例:
@Intercepts({@Signature( type= Executor.class, method = "update", args = {MappedStatement.class,Object.class})}) public class ExamplePlugin implements Interceptor { public Object intercept(Invocation invocation) throws Throwable { return invocation.proceed(); } public Object plugin(Object target) { return Plugin.wrap(target, this); } public void setProperties(Properties properties) { } }
xml配置:
<plugins> <plugin interceptor="org.format.mybatis.cache.interceptor.ExamplePlugin"></plugin> </plugins>
相关文章推荐
- php实现批量修改文件名称的方法
- 当前目录下创建文件夹与文件
- Composer在ubuntu下的安装
- 在Android中使用HandlerThread创建线程
- Shell前后台进程切换
- 未能加载文件或程序集"Newtonsoft.Json, Version=4.5.0.0
- POJ 2195Going Home(最小费用最大流)
- Python 相关
- 前端 时间个性化 插件 jquery.timeago.js
- Cell Not Under Attack(Codeforces 701B)(Codeforces Round#364 Div2 B)
- Python3之redis使用
- Intersection of Two Arrays
- 基本类型 包装类型 判空
- 值得学习的C/C++开源项目
- ubuntu里的Ubuntu Software Center
- js注意事项01
- Microsoft Web Application Stress Tool使用教程
- Stage2--Python的数据类型
- 基于SSH框架、Oracle数据库、easyui的分页显示
- Stage2--Python的数据类型