p6spySQL 语句拦截

P6Spy是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架。 通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。

P6SPY提供了如下几个功能:

记录SQL语句的执行时间戳。 
记录SQL语句类型 
记录SQL填入参数的和没有填入参数的SQL语句 

根据配置的时间控制SQL语句的执行时间,对超出时间的SQL语句输出到日志文件中


  p6spy是一个开源软件,它可以跟踪任何使用jdbc的应用产生的数据库操作。特别适合于监控ejb服务器产生的 sql statements。 
    官方网址:点击打开链接
    目前p6spy 适用的应用服务器包括jboss, atg, orion, jonas, iplanet, weblogic, websphere, resin and tomcat. 

下面我介绍一下p6spy在tomcat应用程序上安装的步骤: 
(1)点击打开链接,下载zip包 
(2)解压出p6spy.jar spy.properties两个文件 
(3)将p6spy.jar 放入应用程序的WEB-INF/lib目录,将spy.properties放入WEB-INF/classes目录 
(4)修改spy.properties 
realdriver  =com.mysql.jdbc.Driver  将这行前面的#去掉    

logfile     = c:/spy.log  修改一个你需要的日志文件名 
    
(5)修改hibernate.xml,修改connection.driver_class的值为com.p6spy.engine.spy.P6SpyDriver 
(6)重启tomcat 
(7)这样在c:/下的spy.log记录了数据库的访问情况。 
----------------------------------------- 

1.下载附件的p6psy.jar以及spy.properties文件 

2.将p6spy.jar放到应用的lib目录下,将spy.properties放到WEB-INF\classes目录下 

3.修改spy.properties样本的第41行。改成需要的数据库信息 
修改spy.properties样本的第54行 。改成需要的数据库信息 

修改spy.properties样本的第168行,将spy.log放到比较好找的位置: 
例如:logfile = E:/spy.log 

4.驱动程序加载先后的问题解决 
  如果spy.log里出现 
  你的程序的数据库驱动名称 is a real driver in spy.properties, but it has been loaded before p6spy. p6spy will not wrap these connections. Either prevent the driver from loading, or try setting 'deregisterdrivers' to true in spy.properties 
  请把spy.properties文件里的deregisterdrivers=false改为deregisterdrivers=true,重新运行即可。 

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值