Java 将带有参数的hibernate sql查询字符串打印到日志中
在我的hibernate配置中,show_sql属性为'true',并且由于我没有使用日志记录的log4j API,默认情况下hibernate在tomcat控制台中显示带有“?”标记的查询 在本例中,我需要将hibernate执行的带有参数值的完整sql查询打印到日志中,但我没有使用log4j API进行日志记录来配置Java 将带有参数的hibernate sql查询字符串打印到日志中,java,hibernate,Java,Hibernate,在我的hibernate配置中,show_sql属性为'true',并且由于我没有使用日志记录的log4j API,默认情况下hibernate在tomcat控制台中显示带有“?”标记的查询 在本例中,我需要将hibernate执行的带有参数值的完整sql查询打印到日志中,但我没有使用log4j API进行日志记录来配置org.hibernate.sql和org.hibernate.type的调试级别 对于日志记录,我们将手动将内容写入文件,因此在这种情况下,有人可以告诉我如何将hibernat
org.hibernate.sql
和org.hibernate.type
的调试级别
对于日志记录,我们将手动将内容写入文件,因此在这种情况下,有人可以告诉我如何将hibernate查询写入日志
在本例中,我需要将hibernate执行的带有参数值的完整sql查询打印到日志中,但我没有使用log4j API进行日志记录来配置org.hibernate.sql
和org.hibernate.type
无论您是否使用日志框架,Hibernate在记录准备好的语句时都会输出问号
如果要打印带有绑定值的“真实查询”,则必须使用JDBC代理驱动程序,如(不再移动)或。如您所要求的“将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 (?, ?, ?)
有关代码的更多详细信息,请访问本文:-即使如此,如何将带有问号的sql语句打印到预定义的日志中?