显示出Hibernate查询语句的绑定参数值
2013-07-17 14:11
169 查看
在使用 Hibernate 进行数据库操作的时候可以显示出所执行的 SQL 语句,相信用 Hibernate 的兄弟姐妹们都知道怎么设置。就设置 hibernate.show_sql 或者 show_sql 属性为 true 就行,在 hibernate.cfg.xml 或者与 Spring 集成时配置在 Spring 的配置文件中。再就是要让显示的 SQL 语句是格式化的,就配置 hibernate.format_sql 或是 format_sql 为 true,否则总在一行中执行。Hibernate 显示的
SQL 语句好像是通过 System.out.println() 直接输出的。
Hibernate 大部份时候是通过 PreparedStatement 来执行 SQL 语句的,它的好处是可预处理、被缓存,可防止注入。只是这样让 Hibernate 执行的 SQL 语句输出到控制台是带问号的,如:
我们有时候很想知道此时绑定给这个 ?号具体是什么值,但默认情况下在日志中是没有显示出来的,因为输出它的 LEVEL 级别是 TRACE,而我们用 Log4J 或 Slf4J 开发时默认级别一般最低也是 DEBUG,也就是要为这一输出指定日志的 LEVEL 为 TRACE。
针对我所用的 Hibernate 3.6.0,如果是用 Log4J 输出日志就在 log4j.properties(log4j.xml 参照此) 中配置:
如果用的是 Slf4J + Logback 的话,就在 logback.xml 中配置:
有了这个 TRACE 配置,在输出上面 SQL 语句后还会显示出每个参数所绑定的值,如:
第一个参数绑定的值是 VARCHAR 类型的 "gt",如果有更多的参数依次显示下去。
如果 Hibernate 的版本不是 3.6.0 话,可能配置略有不同,有些文章介绍说把下面两个包的 TRACE 打开,即:
logback 中的配置请参照上面。这时候你不仅看到了查询前的绑定值,连查询出来的每一个字段值都有了:
还有更冗余的 Hibernate 初始化的信息,所以你应该在 org.hibernate.type 和 org.hibernate.sql 这两个包的 TRACE 基础上,观察日志输出来紧缩要 TRACE 的包。
参考:1. 显示Hibernate的sql语句参数值
2. 在控制台中显示Hibernate打印的SQL中的参数
本文链接 http://unmi.cc/show-parameters-for-hql, 来自 隔叶黄莺
Unmi Blog
[版权声明]本站内文章,如未特别注明,均系原创或翻译之作,本人 Unmi 保留一切权利。本站原创及译作未经本人许可,不得用于商业用途及传统媒体。网络媒体可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。及此说明,重之之重。
SQL 语句好像是通过 System.out.println() 直接输出的。
Hibernate 大部份时候是通过 PreparedStatement 来执行 SQL 语句的,它的好处是可预处理、被缓存,可防止注入。只是这样让 Hibernate 执行的 SQL 语句输出到控制台是带问号的,如:
针对我所用的 Hibernate 3.6.0,如果是用 Log4J 输出日志就在 log4j.properties(log4j.xml 参照此) 中配置:
如果 Hibernate 的版本不是 3.6.0 话,可能配置略有不同,有些文章介绍说把下面两个包的 TRACE 打开,即:
参考:1. 显示Hibernate的sql语句参数值
2. 在控制台中显示Hibernate打印的SQL中的参数
本文链接 http://unmi.cc/show-parameters-for-hql, 来自 隔叶黄莺
Unmi Blog
[版权声明]本站内文章,如未特别注明,均系原创或翻译之作,本人 Unmi 保留一切权利。本站原创及译作未经本人许可,不得用于商业用途及传统媒体。网络媒体可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。及此说明,重之之重。
相关文章推荐
- 控制台打印Hibernate的SQL语句显示绑定参数值
- 控制台打印Hibernate的SQL语句显示绑定参数值
- 让控制台打印的Hibernate显示SQL语句显示绑定参数值
- 让Hibernate显示SQL语句的绑定参数值
- 让Hibernate显示SQL语句的绑定参数值
- hibernate--HQL查询语句参数绑定
- 显示Hibernate的HQL语句参数值
- 让Hibernate显示SQL语句的绑定参数值
- 让Hibernate显示SQL语句的绑定参数值
- Hibernate使用sql语句查询
- hibernate中文动态查询语句乱码问题
- hibernate通过sql语句查询出的结果集封装到bean里面去
- hibernate查询语句--HQL
- hibernate的hql查询语句总结
- hibernate如何使用hql语句查询时间区间段
- 程序执行hibernate语句查询到数据库里的char型字段,返回的只有该字段的首字母
- 执行任何一条查询语句,都会显示Resource id #3 ,不知是什么造成的
- hibernate中如何防止N+1条语句查询
- hibernate的hql查询语句总结
- Hibernate HQL查询语句总结