默认情况下,hibernate的sql中都是以问号代表参数,并没有显示参数的真实值,但是也不是做不到,只需要两步配置就可以显示出参数的真实值了:
1.spring的配置文件中增加:
- <prop key="hibernate.show_sql">true</prop>
或者在hibernate的配置文件中增加:
- <property name="show_sql">true</property>
2.在log4j.properties中做如下配置:
- log4j.appender.STDOUT.Threshold=trace
- log4j.category.org.hibernate.SQL=trace
- log4j.category.org.hibernate.type=trace
控制台显示如下:
- Hibernate: insert into app_log (time, usr, ip, level, log) values (?, ?, ?, ?, ?)
- log4j:org.hibernate.type.NullableType.nullSafeSet(NullableType.java:133)# - binding '2010-11-29 14:36:48' to parameter: 1
- log4j:org.hibernate.type.NullableType.nullSafeSet(NullableType.java:133)# - binding '1' to parameter: 2
- log4j:org.hibernate.type.NullableType.nullSafeSet(NullableType.java:133)# - binding '127.0.0.1' to parameter: 3
- log4j:org.hibernate.type.NullableType.nullSafeSet(NullableType.java:133)# - binding 'info' to parameter: 4
- log4j:org.hibernate.type.NullableType.nullSafeSet(NullableType.java:133)# - binding 'admin login ' to parameter: 5
本文介绍如何通过简单配置使Hibernate在输出SQL时显示实际参数值,包括修改spring配置文件及log4j属性设置。

3万+

被折叠的 条评论
为什么被折叠?



