Spring Boot JPA 打印 SQL 语句及参数
Spring Boot JPA About 1,042 words需求
JPA执行SQL语句时,打印最终生成的SQL以及传入的参数。
方法一
show-sql设置为true表示打印SQL语句。
format_sql设置为true表示格式化SQL(多行显示)。
spring:
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
方法二(推荐)
show-sql: true虽然可以打印SQL日志,但其没有使用Logger日志管理类,而是使用System.out标准输出。
虽然现在基于Kubernetes中的pod部署可以使用ELK、Loki等直接收集标准输出,但可以使用logback等日志框架,可以设置MDC等traceId追踪上下调用链路。
JPA
注意:此处org.hibernate.SQL中的SQL不是一个类,必须大写。
logging:
level:
org.hibernate.SQL: debug
org.hibernate.type.descriptor.sql.BasicBinder: trace
JdbcTemplate
logging:
level:
org.springframework.jdbc.core.JdbcTemplate: debug
org.springframework.jdbc.core.StatementCreatorUtils: trace
对应源码
org.hibernate.SQL对应的Logger位于SqlStatementLogger中。
package org.hibernate.engine.jdbc.spi;
public class SqlStatementLogger {
private static final Logger LOG = CoreLogging.logger( "org.hibernate.SQL" );
private static final Logger LOG_SLOW = CoreLogging.logger( "org.hibernate.SQL_SLOW" );
}
参考
https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html
Views: 8,486 · Posted: 2023-03-03
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...