Mybatis控制台打印SQL语句的两种方式
问题描述
在使用 mybatis 进行开发的时候,由于可以动态拼接 sql,这样大大方便了我们。但是也有一定的问题,当我们动态 sql 拼接的块很多的时候,我们要想从 *mapper.xml 中直接找出完整的 sql 就会非常的难,这个时候经常会需要把组合之后的完整 sql 调试出来比较好。下面来看两种调试出 sql 的两种方式
解决方案
方案 1:
网上说的比较多的,之前也是这么用的一种方式
1 2 3 4 5 6 7 8 9 10 11 12 | 1 :首先将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句 2 :添加如下语句: ###显示SQL语句部分 log4j.logger.com.ibatis=DEBUG log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG log4j.logger.Java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG |
方案 2:
最近发现的一种方式,方便快捷
在 mybatis.config.xml 中增加如下配置:
1 2 3 4 5 6 7 8 9 10 | <?xml version= "1.0" encoding= "UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > <configuration> <settings> <setting name= "logImpl" value= "STDOUT_LOGGING" /> </settings> </configuration> |
以上 mybatis 调试出 sql 的两种方式。
在 SpringBoot 中,修改 application.yml 文件
1 2 3 | mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl |