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;
    }
}
相关推荐
乐茵lin6 分钟前
Redis 持久化机制详解:RDB 与 AOF
redis·bootstrap·mybatis
考虑考虑1 小时前
JDK26的JEP 500属性
java·后端·java ee
LMT流氓兔1 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节
yuniko-n1 小时前
【JUC】四种内存屏障示例
java·1024程序员节
念何架构之路2 小时前
Go reflect 包:结构体反射 —Field、Tag 与 VisibleFields
java·数据库·golang
liangbo73 小时前
03-JDK 10/11 局部变量推断与 LTS:var 到底该怎么用
java
EnCi Zheng3 小时前
PostgreSQL 实战指南:安装配置、数据类型、索引选型、MVCC 事务与高可用备份全解析
数据库·sql·postgresql·索引·1024程序员节
Percep_gan3 小时前
调用天翼云的对象存储ZOS,很详细
java·1024程序员节
若亦_3 小时前
数据结构>>优先级队列(堆)
java·数据结构
泡海椒3 小时前
JQuick-SQL REST API 数据接入:应用层调用接口后注册分析表
数据库·sql·1024程序员节