1. 程式人生 > >Hibernate配置列印sql語句和引數

Hibernate配置列印sql語句和引數

在Hibernate的配置檔案hibernate.cfg.xml中有3個設定項跟顯示SQL語句相關,他們的值都是boolean值:
1、show_sql:是否顯示SQL語句
2、format_sql: 是否格式化輸出字串,增強SQL的可讀性
3、use_sql_comments:是否顯示註釋,用於指示出是什麼操作產生了這個SQL語句。

如果設定了show_sql=true的話預設只打印SQL語句不會列印引數:
如果需要列印引數請在log4j配置檔案:log4j.properties中加入:

log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
log4j.loggerorg.hibernate.type.descriptor.sql.BasicExtractor=TRACE

如果需要檢視查詢中命名引數的值,繼續加入:
log4j.logger.org.hibernate.engine.QueryParameters=DEBUG
log4j.logger.org.hibernate.engine.query.HQLQueryPlan=DEBUG

接下來奉上全部配置:
log4j.rootLogger=info, CA

ConsoleAppender

log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n

為了顯示引數

log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
log4j.loggerorg.hibernate.type.descriptor.sql.BasicExtractor=TRACE

檢視查詢中命名引數的值

log4j.logger.org.hibernate.engine.QueryParameters=DEBUG
log4j.logger.org.hibernate.engine.query.HQLQueryPlan=DEBUG

使用時只需要將hibernate.cfg.xml中的show_sql設定為true然後將紅色程式碼複製到配置檔案中即可。