Mybatis Plus 打印 SQL 语句(包含执行耗时)
作者:mmseoamin日期:2024-04-29

文章目录

  • 一、前言
  • 二、引入依赖
  • 三、添加配置
    • 3.1 第一步:修改 application.yml 配置文件
    • 3.2 第二步:添加 p6spy 配置文件
    • 四、看看打印效果
    • 五、注意点

      一、前言

      我们先配置一下 Mybatis Plus 打印 SQL 功能(包括执行耗时),以方便我们更直观的学习 CRUD, 一方面可以了解到每个操作都具体执行的什么 SQL 语句, 另一方面通过打印执行耗时,也可以规避一些慢 SQL,提前做好优化。

      注意:生产环境不推荐打印执行 SQL,会有数据泄漏风险,仅推荐本地开发使用。

      TIP : 此种方式为官方推荐,通过 p6spy 组件来实现完整的 SQL 打印。请使用 Mybatis Plus 3.1.0 以上版本。

      二、引入依赖

      MAVEN

      
                  p6spy
                  p6spy
                  3.9.1
              
      

      三、添加配置

      3.1 第一步:修改 application.yml 配置文件

      application.yml 配置文件

      spring:
        datasource:
      #    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
      #    url: jdbc:sqlserver://ip;DatabaseName=xxxxxx
          driver-class-name: com.p6spy.engine.spy.P6SpyDriver
          url: jdbc:p6spy:sqlserver://ip;DatabaseName=xxxxxx
          username: sa
          password: xxxxx
      

      注意:

      • driver-class-name 用 p6spy 提供的驱动类;
      • url 前缀为 jdbc:p6spy 跟着冒号,后面对应数据库连接地址;

      3.2 第二步:添加 p6spy 配置文件

      然后在 resources 目录下添加 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
      

      四、看看打印效果

      Mybatis Plus 打印 SQL 语句(包含执行耗时),在这里插入图片描述,第1张

      五、注意点

      p6spy 组件请勿在生产环境使用,因为有性能损耗,推荐仅本地开发开启使用。

      来源:https://www.quanxiaoha.com/mybatis-plus/mybatisplus-print-sql.html