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实现读取及生成Excel文件的方法

    Java实现读取及生成Excel文件的方法

    这篇文章主要介绍了Java实现读取及生成Excel文件的方法,结合实例形式分析了java通过引入第三方jar包poi-3.0.1-FINAL-20070705.jar实现针对Excel文件的读取及生成功能,需要的朋友可以参考下
    2017-12-12
  • spring boot集成WebSocket日志实时输出到web页面

    spring boot集成WebSocket日志实时输出到web页面

    这篇文章主要为大家介绍了spring boot集成WebSocket日志实时输出到web页面展示的详细操作,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Springboot集成SpringBatch批处理组件

    Springboot集成SpringBatch批处理组件

    这篇文章主要介绍了Springboot集成SpringBatch批处理组件,用于处理大规模数据作业,提供ItemReader/Processor/Writer核心组件,支持任务持久化与H2数据库配置,具有一定的参考价值,感兴趣的可以了解一下
    2025-06-06
  • MyBatis的collection和association的使用解读

    MyBatis的collection和association的使用解读

    这篇文章主要介绍了MyBatis的collection和association的使用解读
    2023-12-12
  • mybatis中${}和#{}取值的区别分析

    mybatis中${}和#{}取值的区别分析

    mybatis中使用sqlMap进行sql查询时,经常需要动态传递参数,在动态SQL解析阶段, #{ } 和 ${ } 会有不同的表现,这篇文章主要给大家介绍了关于mybatis中${}和#{}取值区别的相关资料,需要的朋友可以参考下
    2021-09-09
  • Spring Cloud Feign实现动态URL

    Spring Cloud Feign实现动态URL

    本文主要介绍了Spring Cloud Feign实现动态URL,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Nacos后台频繁打印get changedGroupKeys:[]的问题及解决

    Nacos后台频繁打印get changedGroupKeys:[]的问题及解决

    这篇文章主要介绍了Nacos后台频繁打印get changedGroupKeys:[]的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Tomcat版本与Java版本的关系及说明

    Tomcat版本与Java版本的关系及说明

    这篇文章主要介绍了Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Java使用fill()数组填充的实现

    Java使用fill()数组填充的实现

    这篇文章主要介绍了Java使用fill()数组填充的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java有哪些操作字符串的类?区别在哪?

    Java有哪些操作字符串的类?区别在哪?

    今天给大家爱带来的是关于Java的相关知识,文章围绕着Java操作字符串的类展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06

最新评论