SpringBoot中打印 sql 语句

news2024/12/23 23:57:26

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、在配置文件中 application.yml 配置即可
  • 二、#Log4g打印SqL语句
  • 三、配置Logback
  • 总结


前言

在SpringBoot中,我们可以使用日志框架来打印SQL语句,常用的日志框架有Logback和Log4j2。下面以Logback为例,介绍如何在SpringBoot中打印SQL语句。


一、在配置文件中 application.yml 配置即可

#spring boot集成mybatis的方式打印sql
logging:
    level:
      com.xxx.mapper: DEBUG // 包路径为mapper文件包路径

二、#Log4g打印SqL语句

mybatis
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 

打印的sql语句

==>  Preparing: select id, user_id as userId, role_id as roleId from t_user_role where user_id = ?
==> Parameters: 11(Integer)
<==      Total: 0

/**
 *第一行是sql语句
 *第二行是参数
 *第三行是返回的行数
 */

三、配置Logback

1.添加依赖
首先,在pom.xml文件中添加Logback的依赖:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>

2.配置Logback
在src/main/resources目录下创建logback.xml文件,配置Logback的日志输出格式和日志级别。下面是一个简单的logback.xml配置文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <logger name="org.hibernate.SQL" level="debug"/>
    <root level="info">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

上面的配置文件中,我们定义了一个名为STDOUT的日志输出器,将日志输出到控制台。在logger标签中,我们指定了org.hibernate.SQL这个包的日志级别为debug,这样就可以打印SQL语句了。

3.测试
在代码中执行SQL语句时,Logback会自动打印SQL语句。例如,在SpringBoot中使用JdbcTemplate执行SQL语句:

@Autowired
private JdbcTemplate jdbcTemplate;

public List<User> findAll() {
    String sql = "SELECT * FROM user";
    return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
}

执行以上代码时,Logback会自动打印出类似于下面的SQL语句:

17:28:06.441 [main] DEBUG org.hibernate.SQL - SELECT * FROM user

至此,我们已经成功地在SpringBoot中打印SQL语句了。需要注意的是,开发过程中不要将日志级别设置为debug,因为这样会打印出大量的调试信息,影响程序的性能。在生产环境中,建议将日志级别设置为info或者warn。

总结

在这里插入图片描述

需要系统源码或者BiShe加V
ID:talon712

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/652647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

35:考虑virtual函数以外的其他选择

假设你正在写一个视频游戏软件&#xff0c;你打算为游戏内的人物设计一个继承体系&#xff0c;剧中人物被伤害或因其他因素而降低健康状态的情况并不罕见。你因此决定提供一个成员函数healthValue&#xff0c;它会返回一个整数&#xff0c;表示人物的健康程度。 由于不同的人物…

Linux x86_64平台同时编译x86_64和arm64两个架构的Qt应用程序出现XRes库无法找到

一 背景 在ubuntu x86_64平台上需要同时编译x86_64和arm64两个架构的Qt应用程序。在实践过程中&#xff0c;发现XRes库只能安装在其中一个平台。 二 根因 安装amd64版本的XRes库会删除arm64版本的库&#xff0c;反之亦然。 在安装amd64版本时&#xff0c;会删除arm64版本&a…

内部员工有没有在线帮助文档可以使用呢

当今企业中&#xff0c;内部员工的工作内容变得越来越复杂&#xff0c;需要不断学习新的知识和技能。在这种情况下&#xff0c;企业需要给员工提供一种便捷的在线帮助文档&#xff0c;使员工能够更加高效地完成工作任务。本文将介绍企业内部员工在线帮助文档的重要性以及如何建…

区块链如何助力价值互联网?这些专家有话说

6月13日&#xff0c;由开放原子开源基金会主办&#xff0c;XuperCore开源项目承办的2023开放原子全球开源峰会区块链分论坛在北京举办。来自区块链领域内的专家、行业代表汇聚一堂&#xff0c;分别以主题演讲、圆桌论坛等形式&#xff0c;阐述了全球区块链行业的新理念、新发展…

Opencv仿射函数getAffineTransform底层实现原理

推导 三角形ABC仿射成为三角形DEF的变换矩阵M 猜测矩阵M [ [a1,b1,c1], [a2,b2,c2] ] 仿射变换的数学联系 对于A点和D点 AX*a1AY*b1c1DX AX*a2AY*b2c1DY 对于B点和E点 BX*a1BY*b1c1EX BX*a2BY*b2c2EY 对于C点和F点 CX*a1CY*b1c1FX CX*a2CY*b2c2FY 求解 对以上数…

seqkit 两种拆分方法的比较

seqkit拆分fastq&#xff0c;fasta等文件有两种方式&#xff1a;split和split2&#xff0c; 二者的逻辑并不一样。 split 是将原文件拆分&#xff0c;写满第一个文件&#xff0c;再写第二个文件 split2是将原文件的内容&#xff0c;挨个写到各个拆分文件里面去&#xff1f; 比…

拓尔微技术干货 | get 5个知识点,了解细分驱动技术

本期我们对步进电机驱动原理、五线的步进电机和四线的步进电机、2-2相励磁和1-2相励磁、步进电机驱动的优化方案、拓尔微TMI8150B细分驱动技术的原理进行详细的介绍&#xff0c;共分为5个知识点&#xff0c;全是技术干货&#xff0c;赶紧get下来~ ✔get 1&#xff1a;步进电机…

datax安装部署使用 windows

Datax在win10中的安装_windows安装datax_JMzz的博客-CSDN博客 DataX/userGuid.md at master alibaba/DataX GitHub 环境准备&#xff1a; 1.JDK(1.8以上&#xff0c;推荐1.8) 2.①Python(推荐Python2.7.X) ②Python(Python3.X.X的可以下载下面的安装包替换) python3.0需…

Docker安装——CentOS7.6(详细版)

ps:docker官网 在 CentOS 上安装 Docker 引擎 |官方文档 &#xff08;&#xff09; 一、确定版本&#xff08;必须是7以上版本&#xff09; cat /etc/redhat-release 二、卸载旧版本&#xff08;或者之前装过&#xff0c;没有安装过就不用管了&#xff09; &#xff08;root用…

OpenCV 项目开发实战--实现填充图像中的孔( Python / C++ ) 代码实现

文末附分别基于C++和python实现的相关测试代码下载链接 图 1. 左:原始的图像。中心:阈值和倒置。右:孔被填充。 在本教程中,我们将学习如何填充二值图像中的孔洞。考虑图 1 中左侧的图像。假设我们想要找到一个将硬币与背景分开的二进制掩码,如右图所示。在本教程中,包含…

2.0C++继承

C继承概述 C 中的继承是指一个类可以从另一个类中继承属性和方法&#xff0c;这个被继承的类称为基类或父类&#xff0c;继承它的类称为派生类或子类。 C三种继承 1、公有继承 public 在公有继承中&#xff0c;基类的公有成员和保护成员都可以被派生类访问&#xff0c;而基…

【ROS】ROS2导航Nav2:简介、安装、测试效果、错误处理

1、简介 在ROS2中自动导航使用Nav2来实现。 Nav2 使用几个独立的模块化服务&#xff0c;通过 ROS 2接口&#xff08;例如动作服务器或服务&#xff09;与行为树 (BT) 通信。 Nav2 输入包括&#xff1a;TF转换、一个地图源、一个行为树 (BT) XML 文件和相关的传感器数据源; Nav…

【数字图像处理】2.几何变换

目录 2.1 仿射变换&#xff08;二维&#xff09; 2.2 投影变换&#xff08;三维&#xff09; 2.3 极坐标变换 2.3.1 将笛卡尔坐标转化为极坐标 2.3.2 将极坐标转换为笛卡尔坐标 2.3.3 利用极坐标变换对图像进行变换 几何变换&#xff1a;放大、缩小、旋转等&#xff0c;改…

[游戏开发]Unity中随机位置_在圆/椭圆/三角形/多边形/内随机一个点

[ 目录 ] 0. 前言1. 矩形内随机2. 圆形内随机3. 三角形内随机4. 多边形内随机&#xff08;1&#xff09;多边形分割为三角形&#xff08;2&#xff09;三角形面积计算&#xff08;3&#xff09;数据缓存&#xff08;4&#xff09;按权重随机&#xff08;5&#xff09;实现随机 …

理论【8】TCPUDP彻底搞懂了吗?

1 概述 对于TCP协议和UDP协议&#xff0c;大家应该都有所耳闻。TCP协议和UDP协议都工作在传输层&#xff0c;他们的目标都是在应用之间传输数据。我们常用的网络通信&#xff0c;比如浏览网页、查看邮件、电话通信等&#xff0c;都是通过这两种协议来进行数据传输的。 2 TCP…

面试---如何发现Redis热点Key,有哪些解决方案?

目录 热点问题概述热点问题的危害常见解决方案阿里云数据库解热点之道热点key的处理两种方案对比总结 热点问题概述 产生原因 热点问题产生的原因大致有以下两种&#xff1a; 用户消费的数据远大于生产的数据&#xff08;热卖商品、热点新闻、热点评论、明星直播&#xff09;…

【AI绘画】本地部署Stable Diffusion Web UI

近几年AI发展迅猛&#xff0c;今年更是大爆发&#xff0c;除了爆火的大模型ChatGPT以外&#xff0c;AI绘画也有很大的进步&#xff0c;目前&#xff0c;Stable Diffusion图像生成效果相当惊人&#xff0c;可以生成逼真的人像、风景、物品图片&#xff0c;还可以将图片转换为不同…

提示学习soft prompt浅尝,启发了p-tuing

一、前言 在高质量标注数据稀缺的工业界来说&#xff0c;少样本学习或者零样本学习的方法特别受欢迎&#xff0c;后面出现过一些少样本和零样本的方法&#xff0c;例如对比学习和prompt等&#xff0c;主流prompt的工作分为离散型和连续型模板。离散型主要还是插入bert特殊的tok…

分享AI绘画的方法

曾经&#xff0c;在一个神奇的编程国度里&#xff0c;住着一个名叫小花的程序员。小花喜欢创造和探索新奇的技术&#xff0c;她有一个惊人的能力&#xff1a;她能够根据文字生成相应的图片。这项技术让她成为了这个国度里的传奇人物。人们纷纷向她寻求帮助&#xff0c;希望能够…

flutter:网络请求、json数据转为Model

参考 老孟 flutter&#xff1a; 网络请求-dio http http 是一个可组合&#xff0c;基于Future的库&#xff0c;用于HTTP请求。该软件包包含高级功能和类&#xff0c;可轻松使用HTTP资源。它是多平台的&#xff0c;并且支持移动设备&#xff0c;台式机和浏览器。此软件包为官…