标签:
在做项目的时候很多时候需要知道数据库执行了那些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了。
标签:
原文地址:http://blog.csdn.net/qibobo/article/details/42524611