使用MyBatis进行数据库操作的时候,sql语句都是写在相应的mapper文件中,参数也是使用占位符取值表示的,mapper文件中看不到实时执行的完整sql,有时候sql语句错误或者参数类型不对的时候,由于看不到完整执行的sql,所以无法确定到底是sql的问题,还是参数数值或者类型的问题。
为了方便快速确定动态执行sql的问题,我们可以把动态执行的sql和参数打印到控制台,这时候通过控制台就可以看到执行的完整sql和相应的参数,可以快速定位到问题。
在MyBatis的核心配置文件SqlMapConfig.xml中添加如下配置即可:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 控制台打印sql语句 --> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> </configuration>
再执行sql时完整的sql语句和参数就会打印到控制台: