[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]Mybatis拦截器(Interceptor)

上一篇:[备忘]用CryptoJS进行aes加密,用java解密,CryptoJS AES encryption and Java AES decryption
下一篇:[备忘]openai,国内代理网站

添加日期:2025/2/19 10:39:41 快速返回   返回列表 阅读67次
StatementHandler
------------------------------------
在 MyBatis 准备执行 SQL 之前,首先会创建 Statement 对象,这时会触发对 StatementHandler 的拦截。
使用 StatementHandler 拦截器可以在 SQL 语句被发送到数据库执行前进行自定义操作,比如修改原始 SQL 语句、设置特殊的 Statement 属性等。


ParameterHandler
------------------------------------
在 Statement 准备执行之前,ParameterHandler 将会被调用,以设置SQL语句中的参数。
通过拦截 ParameterHandler,可以在 SQL 参数绑定前后进行操作。适用于复杂的参数处理逻辑,比如加密/解密数据,或者对特殊的参数格式进行处理。




Executor
------------------------------------
执行器 Executor 是整个执行过程的中心,它会调用上述的 StatementHandler 和 ParameterHandler 来准备命令并执行。
拦截 Executor ,可以在 SQL 执行前后添加逻辑,比如缓存的逻辑,在查询语句执行前后检查和添加缓存。


ResultSetHandler
------------------------------------
SQL 语句执行后,如果有结果集返回,MyBatis 将使用 ResultSetHandler 来处理这些结果集,将 JDBC 返回的 ResultSet 转化为 MyBatis 中指定的结果对象。
拦截 ResultSetHandler 支持在结果集映射过程中插入自定义逻辑,比如结果集的加工处理、性能统计等。

作者:月初_Seth
链接:https://juejin.cn/post/7349382887572275200
来源:稀土掘金

@Signature就是指定拦截哪个类里的哪个方法。


@Intercepts({@Signature(
    type = StatementHandler.class,
    method = "prepare",
    args = {Connection.class, Integer.class}
), @Signature(
    type = StatementHandler.class,
    method = "getBoundSql",
    args = {}
), @Signature(
    type = Executor.class,
    method = "update",
    args = {MappedStatement.class, Object.class}
), @Signature(
    type = Executor.class,
    method = "query",
    args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class}
), @Signature(
    type = Executor.class,
    method = "query",
    args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class}
)})
public class MybatisPlusInterceptor implements Interceptor {
    //...
}

 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved