Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将带有参数的hibernate sql查询字符串打印到日志中_Java_Hibernate - Fatal编程技术网

Java 将带有参数的hibernate sql查询字符串打印到日志中

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

在我的hibernate配置中,show_sql属性为'true',并且由于我没有使用日志记录的log4j API,默认情况下hibernate在tomcat控制台中显示带有“?”标记的查询

在本例中,我需要将hibernate执行的带有参数值的完整sql查询打印到日志中,但我没有使用log4j API进行日志记录来配置
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语句打印到预定义的日志中?