使用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語句和參數就會打印到控制台: