mybatis sql 拦截器

SqlLogInterceptor

复制代码
@Component
@Intercepts({
        @Signature(type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class}),
        @Signature(type = StatementHandler.class, method = "update", args = {Statement.class})
})
@Slf4j
public class SqlLogInterceptor implements Interceptor {

    @Override
    public Object intercept(Invocation invocation) throws Throwable {
        long startTime = System.currentTimeMillis();
        Object retVal = invocation.proceed();
        try {
            long endTime = System.currentTimeMillis();
            long time = endTime - startTime;
            String traceId = TraceIdUtil.getTraceId();
            if (StringUtils.isNotEmpty(traceId)) {
                log.info("time" + time);
            }
        }catch (Exception e){
            log.error("error", e);
        }
        return retVal;
    }
}
相关推荐
coderlin_3 分钟前
Langgraph项目三 agent搭建
java·数据库·redis
xyx-3v5 分钟前
信号量(二进制/计数)
java·linux·数据库
AI人工智能+电脑小能手15 分钟前
【大白话说Java面试题】【Java基础篇】第18题:HashMap底层是如何扩容的
java·开发语言·面试·散列表·hash-index·hash
想躺平的小羊23 分钟前
IDEA 如何显示或关闭项目类的结构(类的方法)
java·ide·intellij-idea
其实防守也摸鱼28 分钟前
《SQL注入进阶实验:基于sqli-Labs的报错注入(Error-Based Injection)实战解析》
网络·数据库·sql·安全·网络安全·sql注入·报错注入
A-Jie-Y28 分钟前
JAVA设计模式-建造者模式
java·设计模式
曹牧38 分钟前
Java Web 开发:servlet-mapping‌
java·数据仓库·hive·hadoop
码云数智-大飞38 分钟前
OpCache 原理深挖:从字节码缓存到预加载(Preloading)的实战配置
java·开发语言
juniperhan40 分钟前
Flink 系列第20篇:Flink SQL 语法全解:从 DDL 到 DML,窗口、聚合、列转行一网打尽
大数据·数据仓库·分布式·sql·flink
YXWik61 小时前
Claude Code
java