MyBatis控制台显示SQL语句的方法实现

时间:2022-09-02 20:07:57

一、单独使用MyBatis

(1)在mybatis.xml配置文件中添加如下配置

?
1
<setting name="logImpl" value="STDOUT_LOGGING" />

(2)使用slf4j输出

因此要先添加slf4j的依赖

?
1
2
3
4
5
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-log4j12</artifactId>
   <version>1.7.6</version>
</dependency>

log4j配置文件:

?
1
2
3
4
5
6
7
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”配置文件,如下:

?
1
2
3
4
5
6
7
8
<?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,修改如下写法:

?
1
2
3
4
5
6
<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配置文件

?
1
logging.level.cn.lzc.user.mapper=debug

格式:logging.level + 要显示sql的Mapper文件的包,yml文件同理

(2)使用application.yml配置文件

?
1
2
3
4
5
6
logging:
 level:
 cn:
  lzc:
  user:
   mapper: debug

显示的sql样式如下:

MyBatis控制台显示SQL语句的方法实现

到此这篇关于MyBatis控制台显示SQL语句的方法实现的文章就介绍到这了,更多相关MyBatis控制台显示SQL内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_24689877/article/details/82863431