手摸手5-springboot开启打印sql完整语句

目录

手摸手5-springboot开启打印sql完整语句

简介

MyBatis-Plus提供了SQL分析与打印的功能,通过集成p6spy组件,可以方便地输出SQL语句及其执行时长。本功能适用于MyBatis-Plus 3.1.0及以上版本。

p6spy简介

p6spy 是一个针对数据库访问进行拦截和记录的工具,它通过代理JDBC驱动程序来工作。这意味着你的应用程序可以像往常一样使用JDBC,而p6spy会在幕后记录所有的SQL语句及其执行时间。这对于开发和调试过程中的SQL优化非常有用。

p6spy不仅限于记录SQL日志,它还提供了一些高级功能,如:

  • 慢SQL检测 :通过配置outagedetection和outagedetectioninterval,p6spy可以记录执行时间超过设定阈值的SQL语句。
  • 自定义日志格式 :通过logMessageFormat,你可以自定义SQL日志的输出格式,包括时间戳、执行时间、SQL语句等。
  • 日志输出控制 :appender配置项允许你选择日志输出到控制台、文件或日志系统。

p6spy是一个强大的工具,它为MyBatis-Plus用户提供了便捷的SQL分析与打印功能。通过合理配置,你可以在开发和测试阶段有效地监控和优化SQL语句。然而,由于性能损耗,建议在生产环境中谨慎使用。

引入依赖

xml 复制代码
<!-- sql语句打印-->
<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>3.9.1</version>
</dependency>

修改application-jdbc.yaml配置

yaml 复制代码
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
url: jdbc:p6spy:mysql://localhost:3306/ojmall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai

新增驱动 driver-class-name: com.p6spy.engine.spy.P6SpyDriver 是p6spy的驱动

这里的jdbc:p6spy:mysql是p6spy的驱动,mysql是数据库类型。

配置spy.properties文件配置项

properties 复制代码
#相关的包
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
# 日志格式
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
#日志输出到控制台
appender=com.p6spy.engine.spy.appender.StdoutLogger
# 设置 p6spy driver 代理
deregisterdrivers=true
# 取消JDBC URL前缀
useprefix=true
# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
excludecategories=info,debug,result,commit,resultset
# 日期格式
dateformat=yyyy-MM-dd HH:mm:ss
# 开启慢sql
outagedetection=true
# 慢SQL记录标准(单位秒)
outagedetectioninterval=2

运行后效果

这里能看到控制台输出了完整的sql语句

bash 复制代码
==>  Preparing: select * from user where login_name = ?
==> Parameters: admin(String)
 Consume Time:32 ms 2024-11-12 16:48:01
 Execute SQL:select * from user where login_name = 'admin'
相关推荐
Francek Chen4 分钟前
【大数据处理与分析】数据仓库Hive:09 Hive 编程实践
大数据·数据仓库·hive·hadoop·sql
麦壳饼10 分钟前
SonnetDB 5.0 正式发布:增强 SQL 与事务,开放九模型 MCP 读写
数据库·人工智能·sql·sonnetdb
敲代码的小小酥30 分钟前
谈SpringMVC与Spring WebFlux的区别与适用场景
java·后端·spring
IT_陈寒30 分钟前
Redis开发实战:从入门到精通
前端·人工智能·后端
日日大王学编程33 分钟前
2026主流AI Agent产品分类、核心差异与技术特性全解析
人工智能·后端·python
nice_lcj5201 小时前
【从零理解 Spring AI · 03】Spring AI 在 Spring 生态里的位置
java·spring boot·大模型·spring ai·ai应用开发
mldong1 小时前
同一个节点接力办几轮,流程才往下走:jeeflow 的后加签
后端·架构
量化分析码农1 小时前
【Python量化多因子实战 03】多因子怎么合成?等权、IC 加权与回归加权实测
后端
Decay__9 小时前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
深蓝AI9 小时前
JWT 不是登录方案:三种登录态架构怎么选
后端