首页 > Java > Java面试题 > 正文

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

小老鼠
发布: 2025-11-18 09:46:08
原创
895人浏览过
配置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 语句有助于调试和优化数据库操作。可以通过修改配置文件或代码设置,让 Hibernate 在控制台输出实际生成的 SQL。

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

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

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

示例配置:

<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.use_sql_comments">true</property>
登录后复制

方法二:在 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:

Insou AI
Insou AI

Insou AI 是一款强大的人工智能助手,旨在帮助你轻松创建引人入胜的内容和令人印象深刻的演示。

Insou AI 69
查看详情 Insou AI
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 中添加:

<logger name="org.hibernate.SQL" level="DEBUG"/>
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
登录后复制

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

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

以上就是hibernate 中如何在控制台查看打印的 sql 语句?的详细内容,更多请关注php中文网其它相关文章!

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号