spring boot集成mybatis-plus——Mybatis Plus 打印 SQL 语句(包含执行耗时)
Mybatis Plus 打印 SQL 语句(包含执行耗时)
一、前言
大家好,我是小哈。
在《快速入门》 小节中,我们已经使用 Mybatis Plus 对数据库进行了最简单的 CRUD 操作,但是在实际项目中,增删改查操作会更加复杂,接下来,我们将更加深入的学习 Mybatis Plus 的增删改查。
在这之前呢,我们先配置一下 Mybatis Plus 打印 SQL 功能(包括执行耗时),以方便我们更直观的学习 CRUD, 一方面可以了解到每个操作都具体执行的什么 SQL 语句, 另一方面通过打印执行耗时,也可以规避一些慢 SQL,提前做好优化。注意,生产环境不推荐打印执行 SQL,会有数据泄漏风险,仅推荐本地开发使用。
TIP : 此种方式为官方推荐,通过
p6spy
组件来实现完整的 SQL 打印。请使用 Mybatis Plus 3.1.0 以上版本。
二、引入依赖
Maven
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>最新版本</version>
</dependency>
TIP: 最新版本 可在 Maven 仓库中查看,链接:https://mvnrepository.com/artifact/p6spy/p6spy
p6spy 最新版本
Gradle
compile group: 'p6spy', name: 'p6spy', version: '最新版本'
三、添加配置
3.1 第一步:修改 application.yml
配置文件
application.yml
配置文件:
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
url: jdbc:p6spy:mysql://127.0.0.1:3306/test?characterEncoding=utf-8
...
注意:
driver-class-name
用p6spy
提供的驱动类;url
前缀为jdbc:p6spy
跟着冒号,后面对应数据库连接地址;
3.2 第二步:添加 p6spy
配置文件
然后在 resources
目录下添加 spy.properties
配置文件:
添加 spy.properties 配置文件
配置文件内容如下:
#3.2.1以上使用
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
#3.2.1以下使用或者不配置
#modulelist=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
# 自定义日志打印
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
#日志输出到控制台
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
# 使用日志系统记录 sql
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
# 设置 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
# 实际驱动可多个
#driverlist=org.h2.Driver
# 是否开启慢SQL记录
outagedetection=true
# 慢SQL记录标准 2 秒
outagedetectioninterval=2
四、看看打印效果
配置添加完成后,单元测试执行一条插入语句:
@Test
void testInsertUser() {
System.out.println(("----- 开始测试 mybatis-plus 插入数据 ------"));
User user = User.builder()
.name("犬小哈教程 www.quanxiaoha.com")
.age(30)
.gender(1)
.build();
userMapper.insert(user);
}
打印效果图如下,可以看到完整的打印了执行语句,以及执行耗时为 8ms:
SQL 打印效果图
五、注意点
p6spy
组件请勿在生产环境使用,因为有性能损耗,推荐仅本地开发开启使用。
六、结语
本文给大家介绍了在项目用使用 Mybatis Plus 持久层框架时,如何通过 p6spy
组件完整的打印 SQL 语句,以及执行耗时,此功能对于本地开发非常有帮助,有兴趣的小伙伴赶紧在自己的项目中集成一下吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2020-02-04 SoapUI接口测试——http知识点回顾