当前位置: 首页 > news >正文

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语句,参数以及执行结果。

相关文章:

  • RCE-Labs超详细WP-Level11Level12(0/1的特殊替换)
  • 安装操作系统ubuntu-20.04.6-live-server-amd64
  • Facebook 的框架及技术栈
  • FFmpeg —— 各系统下ffmpeg硬件加速和API支持情况(文内表格形式详细阐述)
  • 【MySQL基础-4】关系型数据库设计中的范式:从基础到高级
  • 【2025最新】phpMyAdmin渗透利用全链路:信息收集→漏洞探测→后渗透提权技巧
  • RCE-Labs超详细WP-Level9
  • tomato靶场通关攻略
  • C++编译问题——1模板函数的实现必须在头文件中
  • 生成式AI+安全:API防护的“进化革命”——从被动防御到智能对抗的技术跃迁
  • 得物 Android Crash 治理实践
  • Vim忍者速成秘卷:让你的键盘冒出残影の奥义
  • 鸿蒙OS开发ForEach循环渲染
  • qt中再函数中开辟的内存,要不要手动释放?
  • 实现图形界面访问无显示器服务器
  • 【面试】JVM
  • 侯捷C++课程学习笔记:详解多态(五)
  • 【后端】【django drf】django自动导出优雅的api文档的写法
  • easy-poi导出and导入一对多数据excel
  • 基于深度学习的多模态人脸情绪识别研究与实现(视频+图像+语音)
  • 俄需要达成怎样的特别军事行动结果?普京:包含四个方面
  • 柬埔寨果农:期待柬埔寨榴莲走进中国市场
  • 中国新闻发言人论坛在京举行,郭嘉昆:让中国声音抢占第一落点
  • 尹锡悦宣布退出国民力量党
  • 圆桌丨全球化博弈与人工智能背景下,企业如何落地合规体系
  • 俄媒:俄乌代表团抵达谈判会场