背景信息
在日常开发中,经常会遇到Mybatis sql语句的操作问题,由于Mybatis实现sql的动态拼接,开发过程中,为了验证sql是否书写正确,通常需要获取的控制台打印的sql语句来检查是否拼接正确。正如图中这样
那么为了验证sql的正确性,需要复制控制台sql以及sql参数,手工进行拼接后在数据库连接工具(比如 navicat)里面执行查看执行结果,如图
那么问题来了,当遇到sql很长,参数很多时,手工的填充sql参数就会显得很费力且耽误时间。下面有一个很简单的办法来实现这样的操作
问题处理
当遇到一个巨大的sql需要拼接参数时,如果还是单出的通过手工填充sql参数的方式就会很耽误时间,且手工补充参数容易出错,如下图的sql
整个sql美化后的sql有840行,中间涉及到的sql的参数也有很多
这种情况下如果还采用手工补充sql参数的方式就会得不偿失,即耽误时间,且补充过程容易出错,那么是否有一款好的工具可以解决呢?答案是有的,idea有一款插件叫做Mybatis Log Convert,查看插件的解释说明
可以看到这款插件正好可以解决我们遇到的问题,安装插件之后再来查看刚才的sql,选中需要自动填充参数的sql以及参数信息
点击如图mybatis日志解析后可以看到
待看到右下角的提示信息之后,去sql查询工具Ctrl+V粘贴
可以看到参数已经正确填充到sql位置了,直接执行查询即可,这样是不是很方便很快捷呢?哈哈。
在使用中需要注意,选中日志中sql语句时需要同时选中Preparing和Parameters
如果没有同时选中以上两个关键词的话会提示如图。这点需要注意的哈。