如何在项目中打印sql和执行的时间

目标:打印DAO方法中sql和执行的时间

一种方式是去实现Mybatis的拦截器Interceptor ,比较麻烦;
这里介绍一种比较简单的实现方式;

1、如何打印sql?

配置文件加这个可以打印出com.zhenhui.ids.busi.watch包下执行的sql

logging.level.com.zhenhui.ids.busi.watch=debug

2、如何打印sql执行时间
com.zhenhui.ids.busi.watch 包下有多个子包,大部分子包下有DAO结尾的类,或者是Dao结尾
在这里插入图片描述

新建AOP切面类:MapperAspect


package com.zhenhui.ids.busi.watch.config;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

import java.util.Arrays;

@Aspect
@Component
@Slf4j
public class MapperAspect {

    @Pointcut("execution(* com.zhenhui.ids.busi.watch..*DAO.*(..))|| " +
            "execution(* com.zhenhui.ids.busi.watch..*Dao.*(..))) "
    )

    private void pointCutMethod() {

    }

    @Around("pointCutMethod()")
    public Object doAround(ProceedingJoinPoint pjp)  {
        long begin = System.nanoTime();
        Object obj = null;
        try {
            obj = pjp.proceed();
        }
        catch (Throwable throwable) {
            log.info("执行异常");
        }
        long end = System.nanoTime();

        log.info("调用Mapper方法:{},参数:{},\n耗时:{}毫秒",
                pjp.getSignature().toString(), Arrays.toString(pjp.getArgs()), (end - begin) / 1000000);
        return obj;
    }
}


相关推荐

  1. SQL执行时间过长如何优化

    2024-07-12 18:42:07       49 阅读
  2. 如何VSCode打包Vue项目

    2024-07-12 18:42:07       53 阅读
  3. 执行SQL分析打印

    2024-07-12 18:42:07       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 18:42:07       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 18:42:07       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 18:42:07       58 阅读
  4. Python语言-面向对象

    2024-07-12 18:42:07       69 阅读

热门阅读

  1. 力扣题解(等差数列划分)

    2024-07-12 18:42:07       22 阅读
  2. ES6 Module 的语法(十二)

    2024-07-12 18:42:07       18 阅读
  3. 王者荣耀爬虫程序

    2024-07-12 18:42:07       21 阅读
  4. yarn的安装与配置 (秒懂yarn用法)

    2024-07-12 18:42:07       19 阅读
  5. 错误集1

    2024-07-12 18:42:07       19 阅读
  6. ES6 async 函数详解 (十)

    2024-07-12 18:42:07       21 阅读
  7. Linux下如何解压rar文件

    2024-07-12 18:42:07       24 阅读
  8. C# 建造者模式(Builder Pattern)

    2024-07-12 18:42:07       23 阅读
  9. Warning: could not connect to a running Ollama instance

    2024-07-12 18:42:07       18 阅读
  10. 大语言模型

    2024-07-12 18:42:07       20 阅读
  11. EasyExcel文档链接与使用示例

    2024-07-12 18:42:07       17 阅读