How to display hibernate sql parameter values – Log4j

来源:互联网 发布:excel多个数据求和 编辑:程序博客网 时间:2024/05/21 04:41

Problem

Hibernate has basic logging feature to display the SQL generated statement with show_sql configuration property.

Hibernate: INSERT INTO mkyong.stock_transaction (CHANGE, CLOSE, DATE, OPEN, STOCK_ID, VOLUME)VALUES (?, ?, ?, ?, ?, ?)

However , it just isn’t enough for debugging, the Hibernate SQL parameter values are missing.

Solution – Log4j

Log4J is required to display the real Hibernate SQL parameter value.

1. Configure the Log4j in Hibernate

Follow this article to configure Log4j in Hibernate

2. Change the Log level

Modify the Log4j properties file, and change the log level to “debug” or “trace” in “log4j.logger.org.hibernate.type” property.

File : log4j.properties

# Direct log messages to stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n# Root logger optionlog4j.rootLogger=INFO, stdout# Hibernate logging options (INFO only shows startup messages)log4j.logger.org.hibernate=INFO# Log JDBC bind parameter runtime argumentslog4j.logger.org.hibernate.type=trace

3. Done

The Hibernate real parameter values are display now

Output…

Hibernate: INSERT INTO mkyong.stock_transaction (CHANGE, CLOSE, DATE, OPEN, STOCK_ID, VOLUME)VALUES (?, ?, ?, ?, ?, ?)13:33:07,253 DEBUG FloatType:133 - binding '10.0' to parameter: 113:33:07,253 DEBUG FloatType:133 - binding '1.1' to parameter: 213:33:07,253 DEBUG DateType:133 - binding '30 December 2009' to parameter: 313:33:07,269 DEBUG FloatType:133 - binding '1.2' to parameter: 413:33:07,269 DEBUG IntegerType:133 - binding '11' to parameter: 513:33:07,269 DEBUG LongType:133 - binding '1000000' to parameter: 6
阅读全文
0 0
原创粉丝点击