MyBatis-Plus 打印 SQL 语句的两种常用配置方法

陆景行
陆景行
发布时间:2026-10-16| 7人浏览过
原创

在使用 MyBatis-Plus 进行开发时,实时查看生成的 SQL 语句是排查数据异常的关键步骤。本文总结了两种常用的 SQL 打印配置方案:一种是通过 log-impl 输出详细的 SQL 及结果集,适合深度调试;另一种是通过日志级别控制仅打印 SQL 语句和执行影响行数,避免控制台刷屏。同时提供了 YAML 和 Properties 两种配置格式的具体写法。

第一种方式:启用详细 SQL 日志实现类

这种方式通过指定 MyBatis 底层的日志实现类,将完整的 SQL 语句、参数值、执行结果数据集及条数等详细信息打印到控制台。在本地调试阶段非常有用,能清晰看到每次执行的完整上下文。

第1步:配置 application.yml

如果使用 YAML 格式的配置文件,需要在 mybatis-plus 节点下添加配置:

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

第2步:配置 application.properties

如果使用 Properties 格式的配置文件,需遵循层级缩进转换为点号连接的语法:

# mybatis-plus配置控制台打印完整带参数SQL语句
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

注意:配置完成后,控制台会输出极其详细的日志。如果查询返回的数据量较大,可能会导致日志刷屏,影响阅读效率。因此,该方式更适合在开发环境中针对特定接口进行精细调试。

第二种方式:调整日志级别过滤输出

这种方式不依赖 MyBatis-Plus 特有的日志实现类,而是通过调节对应 Mapper/DAO 包的日志级别来实现。它只打印 SQL 语句本身以及执行后的受影响行数(或结果集数量),不会展开具体的结果数据内容,适合日常开发中对性能有一定要求的场景。

第1步:确定包路径

首先需要确认项目中 Mapper 或 DAO 接口的具体包名。例如: com.example.project.dao(具体路径请根据实际项目结构调整)。

第2步:配置 logging.level

在配置文件中设置对应包的路径为 debug 级别:

logging:
  level:
    com:
      example:
        project:
          dao: debug

说明:当包路径设置为 debug 时,MyBatis 会记录 SQL 的执行语句。此方法输出的日志较为简洁,通常能满足“确认 SQL 是否正确生成”的需求,且不会产生大量结果集数据导致的日志噪音。

常见问题排查

如果在配置后未观察到预期的 SQL 打印效果,请按以下步骤检查:

  1. 拼写检查:重点检查 log-impl 后的类名是否完全正确,特别是 StdOutImpl 的大小写拼写。
  2. 配置生效范围:确保配置文件被 Spring Boot 正确加载。如果使用 Nacos 等配置中心,需确认配置的命名空间和 Group 是否与当前环境一致。
  3. 包路径匹配:若使用方式二,请确认 logging.level 下的包路径是否真正覆盖了你的 Mapper 接口所在目录。

以上就是 MyBatis-Plus 配置 SQL 语句打印的详细内容,更多关于 MyBatis-Plus 数据库调试技巧的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。