hibernate 中如何在控制台查看打印的 sql 语句?

配置Hibernate显示SQL语句可通过三种方式:在hibernate.cfg.xml中设置show_sql、format_sql和use_sql_comments属性;2. Spring Boot项目在application.yml或properties中配置spring.jpa.show-sql和format-sql;3. 结合Logback等日志框架,将org.hibernate.SQL设为DEBUG级别,BasicBinder设为TRACE以查看SQL及参数值。

配置 Hibernate 显示 SQL 语句

在开发过程中,查看 Hibernate 执行的 SQL 语句有助于调试和优化数据库操作。可以通过修改配置文件或代码设置,让 Hibernate 在控制台输出实际生成的 SQL。

方法一:通过配置文件开启 SQL 输出(推荐)

如果你使用的是 hibernate.cfg.xml 配置文件,添加以下属性:

  • hibernate.show_sql:设为 true 可在控制台打印 SQL
  • hibernate.format_sql:设为 true 可格式化 SQL,便于阅读
  • hibernate.use_sql_comments:可选,添加注释说明 SQL 来源

示例配置:

true
true
true

方法二:在 Spring Boot 中配置

如果项目基于 Spring Boot,在 application.ymlapplication.properties 中设置:

application.yml:

spring:
  jpa:
    show-sql: true
    format-sql: true
    hibernate:
      use-new-id-generator-mappings: false

application.properties:

spring.jpa.show-sql=true
spring.jpa.format-sql=true

注意:Spring Boot 默认使用 JPA,因此需配置 spring.jpa.* 而非原生 hibernate 属性。

方法三:结合日志框架查看更详细信息

仅开启 show_sql 可能不够灵活。建议配合日志框架(如 Logback 或 Log4j2)启用 Hibernate 的 SQL 日志包:

  • 开启 org.hibernate.SQL 日志级别为 DEBUG
  • 开启 org.hibernate.type.descriptor.sql.BasicBinder 查看参数绑定值

例如,在 logback-spring.xml 中添加:



这样不仅能看见 SQL,还能看到传入的参数值,极大提升调试效率。

基本上就这些,配置后重启应用,执行持久化操作就能在控制台看到 SQL 输出了。