首页 > 代码库 > SSH集成p6spy

SSH集成p6spy

在做项目的时候很多时候需要知道数据库执行了那些sql语句。Hibernate本身也有打印sql的功能,但是PreparedStatement的时候参数就是问号了。而我们经常需要知道具体的参数然后来判断程序出错的原因。p6spy就提供这样一个功能,可以打印出带具体参数的sql。

下面来说说具体的流程:

1 下载p6spy,网址:https://github.com/p6spy/p6spy

2 下载完成后将p6spy.jar放到项目的额buildpath里,然后把spy.properties文件放到eclipse的src的目录下。

3 修改Hibernate的配置文件,把driver_class改成下面的这样,

   <property name="connection.driver_class">
        com.p6spy.engine.spy.P6SpyDriver
    </property>

 然后修改spy.properties文件,我用的是DB2数据库,所以就改成下面的样子。

realdriver=com.ibm.db2.jcc.DB2Driver

4 修改一些p6spy的参数

dateformat=yyyy-MM-dd hh:mm:ss  //打印sql的时候输出时间,如果不配置这项的话打印出来的是一个long型的数字,其实这个选项就是用了java simpleDateFormat类来处理了一下时间的long串。

includecategories=info,debug,result,batch,statement  设置要记录的log,把statement加上。
logfile     = c:/rnclog/spy11.log 要记录log的文件

我这里选用文件来记录log,所以选了FileLogger

#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


配置完成。当程序运行的时候就可以在指定的spy11.log下看到具体的log了。

SSH集成p6spy