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: 5,437 · Posted: 2023-03-03
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...