Springboot应用中Mybatis输出SQL日志的3种方法代码示例
作者:yuanmintao
一、方法一:指定mybatis日志级别
# application.yml
mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 等价于application.properties
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl二、方法二:配置mybatis-config.xml
<configuration>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
</configuration>三、方法三:指定整个mapper包下的日志级别
# application.yml
logging:
  level:
    com.example.demo.mapper: debug
# 等价于application.properties
logging.level.com.example.demo.mapper=debug补充:Spring Boot集成Mybatis中如何显示日志
在Spring Boot集成Mybatis的项目中,如果出现SQL语句执行问题,我们需要进行排查。此时就需要打印对应的SQL语句,那么该如何操作才能正常打印出对应的SQL语句呢?
其实操作非常简单,在application.properties或application.yml文件中配置对应mapper所在包的日志级别即可。
示例如下:
logging.level.com.secbro.mapper=debug
其中“logging.level.”为前缀,“com.secbro.mapper”为Mapper接口所在的包路径。对应的value值为日志的级别。
此时,再执行查询程序,就会打印出对应的SQL日志信息来。
对应的Mapper文件比如:
package com.secbro.mapper;
import com.secbro.model.Order;
import org.apache.ibatis.annotations.*;
import java.util.List;
/**
 * @author sec
 * @version 1.0
 * @date 2020/3/1 10:01 AM
 **/
public interface OrderMapper {
	/**
	 * 更新订单
	 *
	 * @param order 订单信息
	 * @return 记录数
	 */
	@Update("UPDATE tb_order SET order_no = #{orderNo},amount = #{amount} WHERE id =#{id}")
	int update(Order order);
}注意package的路径对照。
添加debug打印之后,执行一条单元测试,对应的日志信息如下:
2020-04-02 21:43:39.466 INFO 92784 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2020-04-02 21:43:39.869 INFO 92784 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2020-04-02 21:43:39.881 DEBUG 92784 --- [ main] com.secbro.mapper.OrderMapper.update : ==> Preparing: UPDATE tb_order SET order_no = ?,amount = ? WHERE id =?
2020-04-02 21:43:39.917 DEBUG 92784 --- [ main] com.secbro.mapper.OrderMapper.update : ==> Parameters: N001(String), 8888(Integer), 1(Integer)
2020-04-02 21:43:39.921 DEBUG 92784 --- [ main] com.secbro.mapper.OrderMapper.update : <== Updates: 12020-04-02 21:43:39.939 INFO 92784 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
2020-04-02 21:43:39.940 INFO 92784 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2020-04-02 21:43:39.949 INFO 92784 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
其中,我们可以很清楚的看到对应的SQL语句,参数以及执行结果。
总结
到此这篇关于Springboot应用中Mybatis输出SQL日志的3种方法的文章就介绍到这了,更多相关Springboot Mybatis输出SQL日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- SpringBoot 整合Mybatis-Plus并输出SQL日志示例详解
 - springboot下mybatis-plus开启打印sql日志的配置指南
 - springboot下mybatis-plus如何打印sql日志和参数到日志文件
 - Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
 - springboot logback调整mybatis日志级别无效的解决
 - springboot+mybatis配置控制台打印sql日志的方法
 - Spring Boot集成Mybatis中如何显示日志的实现
 - springboot整合mybatis将sql打印到日志的实例详解
 - spring boot mybatis日志输出到控制台的方法实践
 
