Springboot应用中Mybatis输出SQL日志的3种方法代码示例

 更新时间:2024年01月31日 08:27:32   作者:yuanmintao  
在前台请求数据的时候,sql语句一直都是打印到控制台的,有一个想法就是想让它打印到日志里,该如何做呢?这篇文章主要给大家介绍了关于Springboot应用中Mybatis输出SQL日志的3种方法,需要的朋友可以参考下

一、方法一:指定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: 1

2020-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日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java介绍多线程计算阶乘实现方法

    Java介绍多线程计算阶乘实现方法

    这篇文章主要为大家详细介绍了Java多线程计算阶乘的实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Java干货知识深入理解内部类

    Java干货知识深入理解内部类

    这篇文章主要介绍了Java干货知识深入理解内部类,定义在另一个类或方法中的类就叫做内部类,需要的朋友可以参考下
    2019-06-06
  • java如何实现基于opencv全景图合成实例代码

    java如何实现基于opencv全景图合成实例代码

    全景图相信大家应该都不陌生,下面这篇文章主要给大家介绍了关于java如何实现基于opencv全景图合成的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-07-07
  • Mybatis-Plus打印sql日志两种方式

    Mybatis-Plus打印sql日志两种方式

    这篇文章主要给大家介绍了关于Mybatis-Plus打印sql日志两种方式,Mybatis-plus是MyBatis增强工具包,用于简化CRUD操作,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Spring Boot 集成 Quartz 使用Cron 表达式实现定时任务

    Spring Boot 集成 Quartz 使用Cron 表达式实现定

    本文介绍了如何在SpringBoot项目中集成Quartz并使用Cron表达式进行任务调度,通过添加Quartz依赖、创建Quartz任务、配置任务调度以及启动项目,可以实现定时任务的执行,Cron表达式提供了灵活的任务调度方式,适用于各种复杂的定时任务需求,感兴趣的朋友一起看看吧
    2025-03-03
  • 实战干货之基于SpringBoot的RabbitMQ多种模式队列

    实战干货之基于SpringBoot的RabbitMQ多种模式队列

    RabbitMQ 是一个由Erlang语言开发的AMQP的开源实现,支持多种客户端。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗,下文将带你深入了解 RabbitMQ 多种模式队列
    2021-09-09
  • idea中如何集成http请求

    idea中如何集成http请求

    这篇文章主要介绍了idea中如何集成http请求问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • java事件处理模型知识点总结

    java事件处理模型知识点总结

    在本篇文章里小辫给大家分享的是一篇关于java事件处理模型知识点总结内容,有兴趣的朋友们可以学习下。
    2021-01-01
  • java 判断一个数组中的数值是否连续相邻的方法

    java 判断一个数组中的数值是否连续相邻的方法

    下面小编就为大家分享一篇java 判断一个数组中的数值是否连续相邻的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Java数据结构之ArrayList从顺序表到实现

    Java数据结构之ArrayList从顺序表到实现

    Java中的ArrayList是一种基于数组实现的数据结构,支持动态扩容和随机访问元素,可用于实现顺序表等数据结构。ArrayList在内存中连续存储元素,支持快速的随机访问和遍历。通过学习ArrayList的实现原理和使用方法,可以更好地掌握Java中的数据结构和算法
    2023-04-04

最新评论