如何在 Spring Boot 项目中显示和格式化 SQL 语句?

  • by

当使用 Spring Data JPA 和 Hibernate 开发 Spring Boot 应用程序时,可以查看生成的 SQL 语句进行测试/调试。 默认情况下,除非在 application.properties 文件中将默认日志记录级别更改为 DEBUG,否则不会打印 SQL 语句:

logging.level.root=DEBUG

然后,可以在 org.hibernate.SQL 类别下查找 SQL 语句:

DEBUG ... org.hibernate.SQL : select product0_.id ... from product product0_ order by ...

但是,以这种方式查看 SQL 语句并不方便,因为必须遍历许多不相关的信息。 而且,由于要打印大量信息,因此以 Debug 日志记录级别运行 Spring Boot 应用程序非常慢。

因此,查看 Spring Boot 应用生成的 SQL 语句的最佳方法是在 application.properties 文件中做以下设置:

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

然后可以看到 SQL 语句的格式如下:

Hibernate:
    select
        product0_.id as id1_0_,
        product0_.brand as brand2_0_,
        product0_.madein as madein3_0_,
        product0_.name as name4_0_,
        product0_.price as price5_0_
    from
        product product0_
    order by
        product0_.id asc limit ?

并将日志记录级别保留为默认(INFO)或 WARN,这样就可以仅关注 SQL 语句。

⬅返回目录

发表评论

电子邮件地址不会被公开。 必填项已用*标注