mybatisplus开启sql打印的三种方式汇总

 更新时间:2024年01月20日 09:18:22   作者:日上三杆快起床  
这篇文章主要介绍了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具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • Java多态(动力节点Java学院整理)

    Java多态(动力节点Java学院整理)

    多态是指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。接下来通过本文给大家介绍java多态相关知识,感兴趣的朋友一起学习吧
    2017-04-04
  • java 基础之JavaBean属性命名规范问题

    java 基础之JavaBean属性命名规范问题

    这篇文章主要介绍了java 基础之JavaBean属性命名规范问题的相关资料,需要的朋友可以参考下
    2017-05-05
  • Java编程实现打印螺旋矩阵实例代码

    Java编程实现打印螺旋矩阵实例代码

    这篇文章主要介绍了Java编程实现打印螺旋矩阵实例代码,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Spring Boot中KafkaListener的介绍、原理和使用方法案例详解

    Spring Boot中KafkaListener的介绍、原理和使用方法案例详解

    本文介绍了Spring Boot中 @KafkaListener 注解的介绍、原理和使用方法,通过本文的介绍,我们希望读者能够更好地理解Spring Boot中 @KafkaListener 注解的使用方法,并在项目中更加灵活地应用
    2023-09-09
  • 给你的MyBatis-Plus装上批量插入的翅膀(推荐)

    给你的MyBatis-Plus装上批量插入的翅膀(推荐)

    这篇文章主要介绍了给你的MyBatis-Plus装上批量插入的翅膀,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Sentinel流控规则实现限流保护详解

    Sentinel流控规则实现限流保护详解

    这篇文章主要介绍了Sentinel流控规则实现限流保护,Sentinel是一个分布式系统的流量控制组件,它可以实现限流,流控,降级等功能,提高系统的稳定性和可靠性,感兴趣想要详细了解可以参考下文
    2023-05-05
  • Java擦除和转换实例分析

    Java擦除和转换实例分析

    这篇文章主要介绍了Java擦除和转换,结合实例形式分析了java擦除和转换概念、功能及相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • 详解Java线程堆栈

    详解Java线程堆栈

    本篇文章主要给大家讲了Java线程堆栈的详细原理以及用法,需要的朋友跟着学习下吧。
    2017-12-12
  • 详解java重载与覆写的区别

    详解java重载与覆写的区别

    很多同学会重载和重写分不清楚,这篇文章主要介绍了详解java重载与覆写的区别,有需要的朋友可以了解一下。
    2016-11-11

最新评论