1. 程式人生 > >MyBatis控制檯顯示SQL語句的方法

MyBatis控制檯顯示SQL語句的方法

一、單獨使用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樣式如下:

sql顯示