在我的hibernate配置中,show_sql属性为'true',因为我没有使用log4j API进行日志记录,默认情况下hibernate显示的查询为'?'在tomcat控制台中标记。
在我的情况下,我需要打印完整的sql查询,其参数值由hibernate执行到日志中,但我没有使用log4j API进行日志记录来配置org.hibernate.SQL
和{{1}的调试级别}。
对于日志记录,我们手动将内容写入文件,因此在这种情况下,任何人都可以告诉我如何将hibernate查询转换为日志。
答案 0 :(得分:0)
在我的情况下,我需要打印完整的sql查询,其参数值由hibernate执行到日志中,但我没有使用log4j API进行日志记录来配置
org.hibernate.SQL
和{{1}的调试级别}
无论您是否使用日志记录框架,Hibernate都会在记录预准备语句时输出问号。
答案 1 :(得分:0)
正如您所说的“使用hibernate执行的参数值打印sql查询到日志中”
您可以将以下参数设置到log4j.properties文件
中#following parameters will be used to log the sql parameters
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.type.descriptor.sql=trace
它将打印查询以及sql参数和数据类型。
Hibernate: insert into employee (employee_address, employee_name, id) values (?, ?, ?)
11:50:40, 209 TRACE [org.hibernate.type.descriptor.sql.BasicBinder] - binding parameter [1] as [VARCHAR] - [Address 0]
11:50:40, 209 TRACE [org.hibernate.type.descriptor.sql.BasicBinder] - binding parameter [2] as [VARCHAR] - [Employee 0]
11:50:40, 209 TRACE [org.hibernate.type.descriptor.sql.BasicBinder] - binding parameter [3] as [BIGINT] - [7008]
11:50:40, 210 DEBUG [org.hibernate.SQL] - insert into employee (employee_address, employee_name, id) values (?, ?, ?)
请访问此帖子了解有关代码的详细信息: - http://techpost360.blogspot.in/2016/10/hibernate-show-sql-with-parameter-values.html