Mybatis 拦截器

发布时间:2024年01月23日

MyBatis拦截器可以拦截以下四种类型的接口方法调用:
Executor (执行器): 拦截org.apache.ibatis.executor.Executor接口的方法,主要用于处理SQL语句的执行过程,包括查询、更新、插入和删除等操作。 例如,它可以用来控制事务的边界、记录日志或者进行额外的数据验证。

ParameterHandler (参数处理器): 拦截org.apache.ibatis.mapping.ParameterHandler接口的方法,负责设置SQL预编译语句中的参数值。 拦截此类方法可以对传入的参数做进一步的处理,如加密、解密、类型转换等。

StatementHandler (SQL处理器): 拦截org.apache.ibatis.mapping.StatementHandler接口的方法,用于处理SQL语法构建相关的工作。 如动态SQL的解析与拼接、添加额外的查询条件等。

ResultSetHandler (结果集处理器): 拦截org.apache.ibatis.resultset.ResultSetHandler接口的方法,用于处理数据库返回的结果集,将结果集中的数据映射到Java对象上。 在拦截这个阶段时,可以对结果进行后处理、自定义结果映射规则或增加缓存逻辑等。

拦截器的执行顺序是按照Executor -> ParameterHandler -> StatementHandler -> ResultSetHandler 的顺序进行.
如果有多个相同类型的拦截器,则按照添加到SqlSessionFactory中的逆序来执行。

文章来源:https://blog.csdn.net/weixin_37646636/article/details/135791745
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。