跳到主要内容

在MyBatis中调试查看生成的SQL语句

· 阅读需 2 分钟

在调试时,有时想要查看MyBatis生成的SQL语句,为此,可以在SpringBoot的配置文件中将mapper的日志级别设置为debug:

# Mybatis
logging.level.top.jlice.demo.mapper=debug

这样在控制台就会打印出MyBatis生成的SQL语句,不过,分为了Preparing、Parameters和Total三个部分。为了得到可以直接执行的SQL语句,首先可以通过Grep Console插件过滤出这部分的日志,

ScreenShot-2020-12-05T12:54:25

然后使用插件来从这些日志转为可以直接执行的SQL语句,有很多插件可以实现这一功能,例如MyBatis Sql Query Log Binder - Plugins | JetBrains

ScreenShot-2020-12-05T12:55:36

安装之后,只需要选择包含Preparing与Parameters部分的日志,然后选择菜单栏的 Tools > Bind Query Log,可以显示出SQL语句并自动复制到剪贴板。

不过,考虑到很多时候需要与他人协作,修改配置文件会影响到协作人。为了不影响他人,可以选择 Run>Run...>Edit Configurations,然后将上面的MyBatis配置写到Environment variable。如果只是想对于某个测试类启用该项配置,可以使用注解:

@SpringBootTest(properties = "logging.level.top.jlice.demo.mapper=debug")