使用Hibernate提供的内置属性<Property name="show_sql">true</Property>只能输出类似于下面的SQL语句:
Hibernate:
insert into student(name, sex, age, cardId, classroom_id, id) values (?, ?, ?, ?, ?, ?)
这样不利于程序的调试,为了可以显示?占位符所代表的具体数据,需要第三方Jar包,p6spy是一个该需求的开源实现。
一、在Java Project项目中使用p6spy:
下面我介绍一下p6spy在tomcat应用程序上安装的步骤:
1 http://www.p6spy.com/下载install包。zip包好像少p6spy.jar文件。
2 解压出p6spy.jar 和spy.properties两个文件
3 pp6spy.jar 放入应用程序的WEB-INF/lib目录,将spy.properties放入WEB-INF/classes目录
4 修改spy.properties
realdriver =com.mysql.jdbc.Driver 将这行前面的#去掉 我用的是MySQL数据库。里面有
logfile = d:/spy.log 修改一个你需要的日志文件名
5 修改hibernate.xml,修改connection.driver_class的值为com.p6spy.engine.spy.P6SpyDriver
hibernate.cfg.xml
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="dscp.driverClassName">com.p6spy.engine.spy.P6SpyDriver</property> <property name="dscp.url">jdbc:mysql://localhost:3306/myblog?useUnicode=true&characterEncoding=GBK</property> <property name="dscp.username">root</property> <property name="dscp.password"></property>