【打印SQL执行日志】⭐️Mybatis-Plus通过配置在控制台打印执行日志

目录

前言

一、Mybatis-Plus 开启日志的方式

二、测试

三、日志分析

章末


前言

        小伙伴们大家好,相信大家平时在处理问题时都有各自的方式,最常用以及最好用的感觉还是断点调试,但是涉及到操作数据库的执行时,默认的话在控制台是看不到是否执行成功的,对于操作数据库的调试不是很友好,如果可以在控制台实时读取执行情况,对于我们来说可以更好的发现问题所在

一、Mybatis-Plus 开启日志的方式

        1.application.properties配置文件

# 开启 MyBatis-Plus SQL 打印功能
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

         2.application.yml配置文件

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

二、测试

        在测试项目中创建个简单的新增用户操作的接口,使用postman接口测试工具发送请求,测试启动日志前后的控制台情况

        1.未启动日志,控制台信息如下,查看数据库,该条信息成功插入

        2.启动日志,控制台打印中间使用到的sql语句以及参数替换

 

三、日志分析

        可以看到控制台中除了打印出执行的sql语句,还有些别的信息,具体如下

      

  • Registering transaction synchronization for SqlSession:                                    Spring 正在注册用于事务管理的 SqlSession 同步。
  • JDBC Connection [HikariProxyConnection@1873059881 wrapping com.mysql.cj.jdbc.ConnectionImpl@755ab072] will be managed by Spring:           JDBC 连接将由 Spring 管理,这通常是通过 Spring 的事务管理机制来管理连接的。
  • Preparing: Insert into customers (name,age) values(?,?):                                  执行的 SQL 语句的准备阶段,其中 ? 是占位符,表示参数化查询。
  • Parameters: 乌鸡王(String), 88(Integer):                                                                  SQL 语句的参数,即将被插入到数据库中的值。
  • <== Updates: 1:                                                                                                           一条记录已经被成功地插入到数据库中,影响了一行数据。
  • Releasing transactional SqlSession:                                                                       事务中的 SqlSession 被释放。
  • Transaction synchronization committing SqlSession:                                            事务同步正在提交 SqlSession。
  • Transaction synchronization deregistering SqlSession:                                       事务同步正在取消注册 SqlSession。
  • Transaction synchronization closing SqlSession:                                                  这表示事务同步正在关闭 SqlSession。

章末

        文章到这里就结束了~

                                                ------------------ END -------------------------

<think>嗯,用户想了解如何配置MyBatis-Plus日志打印。首先,我需要回忆一下相关的配置方法。记得MyBatis-Plus可以通过配置文件来开启SQL日志打印,比如在application.properties或者application.yml里设置。 根据引用[1]和[4],用户需要在配置文件中指定日志实现类。对于properties文件,添加mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl。而yml文件则是配置mybatis-plus下的configuration.log-impl为同样的类名。这两个方法应该能直接在控制台输出SQL语句,包括参数和执行SQL,这样用户就能看到具体的执行情况了。 另外,引用[4]还提到了使用Logback进行更详细的日志配置。比如,在logback-spring.xml里设置mapper包的日志级别为DEBUG,这样可以捕获更详细的信息。用户如果已经有Logback的配置,可能需要调整日志级别,确保MyBatis的mapper接口日志被正确输出。 还要注意Spring Boot本身的日志级别设置,引用[4]中提到在application.yml里设置logging.level.root为INFO,但可能需要将特定的mapper包设为DEBUG。比如logging.level.com.example.mapper=DEBUG,这样才能显示SQL日志。 另外,用户可能遇到配置不生效的问题,这时候需要检查配置位置是否正确,依赖是否冲突,或者是否有多余的配置覆盖了设置。比如同时存在properties和yml文件时,可能会有冲突,需要确保配置统一。 最后,逻辑删除或其他插件是否影响日志输出?引用[3]提到逻辑删除的配置,但应该不影响日志打印。不过如果有其他插件或自定义拦截器,可能需要检查它们的日志处理。 总结下来,配置方法主要包括配置文件设置日志实现类、调整日志级别,以及处理可能的配置冲突。需要把这些步骤清晰地告诉用户,并解答可能遇到的问题。</think>### MyBatis-Plus 日志打印配置方法 MyBatis-Plus日志打印功能主要用于输出 SQL 语句和执行参数,便于调试和性能优化。以下是具体配置方法: --- #### **1. 配置文件开启 SQL 日志** 在 `application.properties` 或 `application.yml` 中添加以下配置: **application.properties** ```properties # 使用标准输出打印 SQL 日志 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl ``` **application.yml** ```yaml mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` 配置后,控制台会输出如下格式的 SQL 日志: ```sql ==> Preparing: SELECT id, name FROM user WHERE deleted = 0 ==> Parameters: ``` 此方法直接打印 SQL 语句和参数,适合快速调试[^1][^2]。 --- #### **2. 结合 Logback 配置详细日志** 若需更详细的日志记录(如执行时间、结果集),可结合 Logback 配置: **logback-spring.xml** ```xml <configuration> <!-- 定义日志格式 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 设置 MyBatis Mapper 接口的日志级别为 DEBUG --> <logger name="com.example.mapper" level="DEBUG" additivity="false"> <appender-ref ref="STDOUT"/> </logger> </configuration> ``` 需确保 `com.example.mapper` 替换为实际 Mapper 接口的包路径[^4]。 --- #### **3. Spring Boot 日志级别调整** 在 `application.yml` 中设置全局或特定包日志级别: ```yaml logging: level: root: INFO org.mybatis: DEBUG # MyBatis 核心日志 com.baomidou.mybatisplus: DEBUG # MyBatis-Plus 日志 ``` 此配置可输出 MyBatis-Plus 内部处理逻辑(如插件、分页等)的详细信息。 --- #### **4. 常见问题排查** - **配置不生效**:检查配置文件名是否正确(如 `application.yml` 需为 UTF-8 编码)。 - **依赖冲突**:确保未引入其他日志框架(如 Log4j)覆盖默认配置- **逻辑删除干扰**:若启用了逻辑删除(`@TableLogic`),需检查 SQL 中是否包含 `deleted` 字段[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

先锋 Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值