Mybatis控制台打印SQL执行信息(执行方法、执行SQL、执行时间)

文章目录

前言

SQL性能监控是一个程序必要的功能,通常我们可以使用数据库自带的客户端工具进行SQL性能分析。然而对于一些专业度不高的人员来说,当程序出现卡顿或者响应速度变慢时,排查问题变得困难。当程序出现卡顿,通常通过检查服务器磁盘使用情况、程序内存大小,网络带宽以及数据库I/O等方面进行问题排查。然而数据库I/O打高的情况通常是由于SQL执行效率过低导致的。一般项目制的公司都有属于自己的实施人员,然而要让实施人员去排查具体SQL执行过慢问题,这显然对于专业度不高的工作人员来说是一种挑战和煎熬。因此本系列文章将介绍如何使用Mybatis的拦截器功能完成对SQL执行的时间记录,并通过MQ推送至SQL记录服务,记录具体的慢SQL信息,后续可以通过页面进行展示。通过可视化的方式让实施人员快速定位到问题所在。

在这里插入图片描述

一、基本功能介绍

本章节只实现Mybatis执行时对执行SQL进行拦截,控制台打印执行SQL包括参数、执行方法以及执行时间。大致结构图如下:
在这里插入图片描述
对慢SQL进行发送MQ,记录显示到前端界面的功能,将在本系列文章第二章实现。

1.1本章功能效果预览图:

在这里插入图片描述

Mapper Method: 显示该SQL是由哪个Mapper方法进行调用执行。
Execute SQL:打印出完整执行的SQL,自动填充了参数。
Spend Time:记录本次SQL执行花费的时间。

二、可执行源码

2.1 yaml基础配置

需要在yaml配置文件中配置是否打印SQL执行信息。当然该配置可以放入Redis中,以方便后续面向微服务时,可以一键开启和关闭,这里就不再演示,后续扩展可有您自主实现。

mybatis-analyze:
  show-log: true #SQL打印到控制台

2.2 MybatisAnalyzeSQLInterceptor实现SQL拦截

源码可直接复制运行!!!!!

package com.hl.by.common.mybatis.interceptor;

import lombok.Getter;
import lombok.Sett
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值