MyBatis控制檯顯示SQL語句的方法
阿新 • • 發佈:2018-12-12
一、單獨使用MyBatis
(1)在mybatis.xml配置檔案中新增如下配置
<setting name="logImpl" value="STDOUT_LOGGING" />
(2)使用slf4j輸出
因此要先新增slf4j的依賴
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.6</version> </dependency>
log4j配置檔案:
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
二、在SSM框架集合中輸出SQL
(1)使用上面的slf4j輸出的方法
(2)依然新建“mybatis-config.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> <!-- 列印查詢語句 --> <setting name="logImpl" value="STDOUT_LOGGING" /> </settings> </configuration>
但是如果是Spring整合MyBatis的情況下,我們通常會寫一個spring-mybatis.xml的配置檔案
此時,如果是這樣的寫法,這個配置檔案暫時不會生效,因為沒有在這個spring-mybatis.xml註冊,Spring就不會掃描這個配置檔案
此時,修改spring-mybatis.xml中id為:sqlSessionFactory的bean,修改如下寫法:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:com/lzc/dao/*.xml"></property>
<!-- 自動掃描mapping.xml檔案 -->
<property name="configLocation" value="classpath:conf/mybatis-config.xml"></property>
</bean>
三、在Spring Boot + MyBatis 中輸出SQL語句
(1)使用application.properties配置檔案
logging.level.cn.lzc.user.mapper=debug
格式:logging.level + 要顯示sql的Mapper檔案的包,yml檔案同理
(2)使用application.yml配置檔案
logging:
level:
cn:
lzc:
user:
mapper: debug
顯示的sql樣式如下: