使用p6spy完整显示hibernate的SQL语句

1、添加p6spy.jar。

2、将spy.properties放到src下,最后部署到类路径下。

3、修改database.properties中的数据库驱动,如:database.connection.driver=com.p6spy.engine.spy.P6SpyDriver

4、修改spy.properties中的属性:

# oracle driver
   realdriver=oracle.jdbc.driver.OracleDriver

# mysql Connector/J driver
# realdriver=com.mysql.jdbc.Driver

# informix driver
# realdriver=com.informix.jdbc.IfxDriver

# ibm db2 driver
# realdriver=COM.ibm.db2.jdbc.net.DB2Driver

# the mysql open source driver
#realdriver=org.gjt.mm.mysql.Driver

根据自己的数据库类型,解开注释,这里使用oracle。

5、修改sql日志的输出方式,第三个是输出到控制台,第四个是输出到文件。
#specifies the appender to use for logging
#appender=com.p6spy.engine.logging.appender.Log4jLogger
appender=com.p6spy.engine.logging.appender.StdoutLogger
#appender=com.p6spy.engine.logging.appender.FileLogger

6、如果指定将日志输出到文件,则需指定文件的目录。
# name of logfile to use, note Windows users should make sure to use forward slashes in their pathname (e:/test/spy.log) (used for file logger only)
logfile = d:/p6spy.log

为过滤眼花缭乱的结果集resultset,需对原有的jar进行改造,件中的jar已经将resultset过滤掉了。另外还要修改:

excludecategories=info,debug,result,batch,resultset

spy.properties中 参数说明:

 1) module.log的属性必须配置,如果不配置,P6SPY将不起任何作用,典型配置为:module.log=com.p6spy.engine.logging.P6LogFactory
 2) realdriver表示真实的驱动,上面配置的com.p6spy.engine.spy.P6SpyDriver会最终调用真是的驱动程序执行SQL

Oracle数据库的配置为:

realdriver=oracle.jdbc.driver.OracleDriver

 3) appender配置,一般分为三种

#appender=com.p6spy.engine.logging.appender.Log4jLogger

# appender=com.p6spy.engine.logging.appender.StdoutLogger

#appender=com.p6spy.engine.logging.appender.FileLogger

 

其中,appender=com.p6spy.engine.logging.appender.StdoutLogger表示将输出的SQL或者日志信息输出到Console窗口。

 4) log4j.logger.p6spy一般需要将log4j的相关参数从默认的

log4j.logger.p6spy=info,STDOUT

修改为

log4j.logger.p6spy=warn,STDOUT

以减少p6spy信息的输出

 5) 可以将dateformat=修改为dateformat=hh:mm:ss,SSS有利用时间信息的查看。

 6) 尽量根据P6Spy的标准的示例的配置文件进行修改,不用随便删除配置信息。

 7)如果是用连接池,则需要将p6spy.jar与spy.properties放到应用服务器加载lib的地方(如tomcat的lib目录)。

你可能感兴趣的:(Hibernate)