mybatis-plus开启sql打印的三种方式总结

 更新时间:2023年11月05日 14:05:50   作者:日上三杆快起床  
这篇文章主要给大家介绍了mybatisplus开启sql打印的三种方式,文章通过代码示例介绍的非常详细,对大家的学习或工作有一定的参考价值,需要的朋友可以参考下

1、在application.yml文件中添加mybatisplus的配置文件

使用mybatisplus自带的log-impl配置,可以在控制台打印出sql语句、执行结果的数据集、数据结果条数等详细信息,这种方法适合再调试的时候使用,因为这个展示的信息详细,更便于调试,查找问题进行优化。缺点就是如果执行的sql语句过多,则输出的日志就会很多,

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志

2、在application.yml文件中使用log4j日志框架配置

使用这个方法可以再控制台或者日志文件中打印sql语句,这种方法比较适合再生产环境种使用,可以避免输出过多的无用信息,也可以使用日志级别来控制是否打印sql语句。

//com.example.classroomrealtimefeedback.mapper是你mapper层的包名

logging:
  level:
    com.example.classroomrealtimefeedback.mapper: debug

3 、使用P6spy插件

可以再控制台中打印出sql语句,并且再控制台中将输出的sql中的?部分替换位真实运行的值,这种方法适合需要复制sql语句到数据库工具中直接执行的场景,也可以通过spyproperties文件来配置是否开启慢sql记录、慢sql记录标准的参数。该插件有性能损耗,不建议生产环境使用

引用依赖: 

<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>3.9.1</version>
</dependency>

修改.yml配置文件:

这里的配置是将mysql数据库和这个插件的配置合一起了。

spring:
  datasource:
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    url: jdbc:p6spy:mysql://127.0.0.1:3306/qcby?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf-8
#mysql为数据库类型,后面为数据库连接地址,

配置spy.properties文件:

modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
deregisterdrivers=true
useprefix=true
dateformat=yyyy-MM-dd HH:mm:ss
# 实际驱动可多个
#driverlist=org.h2.Driver
# 是否开启慢SQL记录
outagedetection=true
# 慢SQL记录标准 1 秒
outagedetectioninterval=1

输出结果:

可能出现的问题: 

  • 打印出sql为null,在excludecategories增加commit
  • 批量操作不打印sql,去除excludecategories中的batch

以上就是mybatisplus开启sql打印的三种方式总结的详细内容,更多关于mybatisplus开启sql打印的资料请关注脚本之家其它相关文章!

相关文章

  • 详细图解Java中字符串的初始化

    详细图解Java中字符串的初始化

    字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串,下面这篇文章主要给大家介绍了Java中字符串初始化的相关资料,需要的朋友可以参考下
    2021-08-08
  • Spring Boot用户注册验证的实现全过程记录

    Spring Boot用户注册验证的实现全过程记录

    最近在设计自己的博客系统,涉及到用户注册与登录验证,所以下面这篇文章主要给大家介绍了关于Spring Boot用户注册验证的实现全过程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • 详解Java分布式事务的 6 种解决方案

    详解Java分布式事务的 6 种解决方案

    在分布式系统、微服务架构大行其道的今天,服务间互相调用出现失败已经成为常态,本文侧重于其他几项,关于 2PC、3PC 传统事务,网上资料已经非常多了,这里不多做重复,本文通过示例给大家介绍Java分布式事务的 6 种解决方案,一起看看吧
    2021-06-06
  • SpringBoot中多环境yml的配置与打包问题

    SpringBoot中多环境yml的配置与打包问题

    这篇文章主要介绍了SpringBoot中多环境yml的配置与打包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • SpringBoot + Spring Security 基本使用及个性化登录配置详解

    SpringBoot + Spring Security 基本使用及个性化登录配置详解

    这篇文章主要介绍了SpringBoot + Spring Security 基本使用及个性化登录配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Java回溯法解决全排列问题流程详解

    Java回溯法解决全排列问题流程详解

    从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。这篇文章主要介绍了Java回溯法解决全排列问题
    2022-10-10
  • Java超详细梳理IO流的使用方法上

    Java超详细梳理IO流的使用方法上

    流(Stream)是指一连串的数据(字符或字节),是以先进先出的方式发送信息的通道,数据源发送的数据经过这个通道到达目的地,按流向区分为输入流和输出流
    2022-04-04
  • springboot2.x整合shiro权限框架的使用

    springboot2.x整合shiro权限框架的使用

    这篇文章主要介绍了springboot2.x整合shiro权限框架的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java数组传递及可变参数操作实例详解

    Java数组传递及可变参数操作实例详解

    这篇文章主要介绍了Java数组传递及可变参数操作,结合实例形式详细分析了java数组参数传递与可变参数相关使用技巧,需要的朋友可以参考下
    2019-09-09
  • Java Springboot如何基于图片生成下载链接

    Java Springboot如何基于图片生成下载链接

    这篇文章主要介绍了Java Springboot如何基于图片生成下载链接,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论