hibernate打印SQL及参数

Posted 灼烧的疯狂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate打印SQL及参数相关的知识,希望对你有一定的参考价值。

在Hibernate的配置文件hibernate.cfg.xml中有3个设置项跟显示SQL语句相关,他们的值都是boolean值:
1、show_sql:是否显示SQL语句
2、format_sql: 是否格式化输出字符串,增强SQL的可读性
3、use_sql_comments:是否显示注释,用于指示出是什么操作产生了这个SQL语句。

 
如果设置了show_sql=true的话默认只打印SQL语句不会打印参数:
如果需要打印参数请在log4j配置文件:log4j.properties中加入:
 
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
log4j.loggerorg.hibernate.type.descriptor.sql.BasicExtractor=TRACE
 
如果需要查看查询中命名参数的值,继续加入:
 log4j.logger.org.hibernate.engine.QueryParameters=DEBUG
 log4j.logger.org.hibernate.engine.query.HQLQueryPlan=DEBUG
 
接下来奉上全部配置:
log4j.rootLogger=info, CA
# ConsoleAppender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{hh\:mm\:ss,SSS} [%t] %-5p %c %x - %m%n
 
#为了显示参数
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
log4j.loggerorg.hibernate.type.descriptor.sql.BasicExtractor=TRACE
 
#查看查询中命名参数的值
 log4j.logger.org.hibernate.engine.QueryParameters=DEBUG
 log4j.logger.org.hibernate.engine.query.HQLQueryPlan=DEBUG
 
使用时只需要将hibernate.cfg.xml中的show_sql设置为true然后将红色代码复制到配置文件中即可。



以上是关于hibernate打印SQL及参数的主要内容,如果未能解决你的问题,请参考以下文章

打印hibernate的SQL语句的几种办法

如何在 Hibernate 日志中显示 SQL 参数? [复制]

Hibernat 原生SQL运行结果集处理方法

hibernate 打印sql和参数的配置

SpringBoot JPA打印JPA执行的SQL语句与参数Springboot JPA日志输出打印SQL语句和传入的参数 高阶篇

如何设置hibernate打印sql语句