`
kerry.honghao
  • 浏览: 16332 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

用P6Spy监视iBatis的SQL输出

阅读更多

最近公司项目用到iBatis,开发环境是JDeveloper + Oracle10g,在进行调试的时候感觉很不方便,因为后台并不打印SQL语句,而sqlmap.xml文件中的Sql语句错误又很难被发现,因此想到了用P6Spy帮一下忙,大致配置过程如下:

1、下载P6Spy.jar文件,虽然p6spy很久没有更新了,但是也能满足我只是“看看SQL语句“的需要了。
       http://www.p6spy.com      
       直接下载p6spy-src.zip文件,因为要自定义p6spy的输出格式,而默认的输出中SQL中的空格导致察看SQL很不方便。
2、解压缩,是一个Ant编译目录,打开build.xml文件,里面定义了编译所需要用到的JAR包。
       其中jboss.jar为2.4.6,比较早的版本,如果应用服务器不是jboss的话可以把com\p6spy目录下的management目录删除,这样编译的时候就可以不用找jboss.jar文件了(不好找)。
3、将com\p6spy\engine\logging\appender\FormattedLogger.java文件中的logSQL()方法更改为如下:
      
java 代码
 
  1. public void logSQL(int connectionId,long elapsed,String category,
  2.                    String prepared,String sql){  
  3.     //String logEntry = now + "|" + elapsed + "|" +
  4.         //(connectionId==-1?"":String.valueOf(connectionId)) + "|" +
  5.         //category + "|" + prepared + "|" + sql;  
  6.     //将sql中的多余空格删除掉  
  7.     sql = sql.replaceAll("\\s+"," ");  
  8.     //定义成简单输出格式  
  9.     String logEntry = "|" + category + "|" + sql;  
  10.     logText(logEntry);  
  11. }  

4、运行Ant进行编译,默认目标即是生成jar文件。
5、将dist\p6spy.jar拷贝到项目WEB-INF\lib目录下,也可以定义为自定义包变量引入到工程中。
6、将spy.properties文件拷贝到目录WEB-INF\classes目录下。
7、更改spy.properties文件,将项目中用到的数据库驱动改为com.p6spy.engine.spy.P6SpyDriver,并将spy.properties文件中的realdriver改为真实连接数据库的driver.
8、完成。
  • p6spy.rar (88.5 KB)
  • 描述: 更改后的p6spy.jar和spy.properties文件
  • 下载次数: 646
分享到:
评论
2 楼 kerry.honghao 2007-07-02  
JDeveloper中不能log4j?
-------------------------
JDeveloper中可以用log4j,但是在输出的SQL语句中包含?,虽然也给出了Parameters值,但是如果将SQL中的?直接替换成参数值显示会更方便些。
1 楼 宏基小键盘 2007-07-01  
JDeveloper中不能log4j?

相关推荐

    使用P6spy打印ibatis执行的SQL语句

    本文将详细探讨如何使用P6Spy来打印iBatis(现为MyBatis)执行的SQL语句,以便进行性能分析和调试。 首先,我们需要了解P6Spy的工作原理。P6Spy通过替换JDBC驱动,将自己插入到应用程序和数据库之间,监听所有的SQL...

    P6SPY JDBC拦截打印sql语句 非常好的调试工具

    P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...

    p6spy-sql监控

    5. **兼容性广泛**:P6Spy支持多种JDBC驱动,能与大多数主流的数据库(如MySQL、Oracle、SQL Server等)配合使用。 ### 二、P6Spy工作原理 P6Spy通过替换应用程序的JDBC驱动,将其插入到应用程序与数据库之间。它...

    p6spy.rar输出完整带参sql

    标题中提到的“输出完整SQL”,意味着P6Spy可以捕获并记录应用程序发出的所有SQL语句,包括参数。这对于调试和性能分析非常有用,特别是当SQL语句是动态生成或者使用了预编译的PreparedStatement时。 5. **兼容性*...

    使用P6Spy和IronTrack SQL进行性能监控

    P6Spy的配置相对简单,只需要将应用程序的JDBC驱动替换为P6Spy的代理驱动,并在配置文件中指定日志格式和输出位置,就能开始收集SQL日志。这些日志包含了执行时间、SQL语句等关键信息,对于分析性能问题非常有帮助。...

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

    P6Spy的核心组件是一个名为`spy.properties`的配置文件,其中可以设置日志文件的位置、要监视的数据库驱动等参数。 以下是在Tomcat应用服务器上集成P6Spy的步骤: 1. 下载P6Spy的最新版本,通常可以从其官方网站...

    p6spy 在weblogic中的配置 以及使用sqlprofiler监控

    通过在WebLogic中配置P6Spy并使用SQLProfiler,我们可以获取详细的SQL执行信息,从而优化数据库性能。这个过程涉及到对WebLogic数据源的配置、P6Spy代理驱动的使用以及`spy.properties`的定制。理解这些知识点对于...

    借鉴p6spy,实现自己的SQL执行监控器项目源代码

    P6Spy是一个广泛使用的开源框架,它允许开发者无侵入地监控和记录应用程序中的所有SQL语句。这个项目的目标是借鉴P6Spy的部分源码,创建一个自定义的SQL执行监控器,以满足特定的需求或提供更定制化的功能。 P6Spy...

    下载 p6spy.jar (内含使用步骤)

    **使用P6Spy进行SQL监控** 1. **查看日志**:P6Spy 会在指定的`logFile`中记录SQL日志,通过阅读这些日志,你可以看到应用程序的每个SQL语句及其执行细节。 2. **性能分析**:根据日志中的执行时间,你可以识别出...

    P6spy 和 SqlProfiler 打印JDBC真实SQL

    在IT行业中,数据库操作是应用程序的核心部分,而JDBC(Java Database Connectivity)是Java...在阅读《p6spy和sqlProfiler的使用说明文档.doc》时,务必仔细理解每个步骤,确保正确配置和使用,以充分发挥它们的功效。

    weblogic server 11g +p6spy +sql profiler 配置

    WebLogic Server 11g是一...通过以上配置,WebLogic Server 11g将能够使用P6Spy和SQL Profiler进行数据库性能监控,为系统的优化提供数据支持。记得定期检查和分析日志,持续优化数据库性能,以保持系统高效稳定运行。

    p6spy精简版-跟踪sql工具

    首先,p6spy的核心功能是SQL日志记录,它能够捕获应用程序执行的所有SQL语句,并将其详细信息输出到日志文件中。这对于性能调优、故障排查以及审计都是非常有用的。在原版p6spy中,用户需要配置`spy.properties`文件...

    p6spy java 使用

    一旦启用 P6Spy,每次应用程序执行 SQL 语句时,P6Spy 都会记录这些 SQL 的详细信息,包括执行前后的原始 SQL、执行参数、返回结果以及执行时间等,这对于性能调优和问题排查非常有用。 【排除ResultSet】 P6Spy ...

    Tomcat6.x + P6spy + SqlProfiler集成

    与P6spy不同,SqlProfiler通常需要与数据库管理系统的客户端一起使用,它可以实时监控SQL执行,包括查询时间、CPU使用、锁定和等待事件等。通过这种方式,开发者可以直观地看到哪些SQL语句可能导致性能问题。 **...

    p6spy简介显示hibernate配置

    2. **格式化输出**:P6Spy可以按照自定义的格式输出SQL日志,使其更易于阅读和分析。 3. **性能监控**:通过记录SQL执行时间和其他相关信息,P6Spy可以帮助识别性能瓶颈,从而优化数据库操作。 4. **无需代码修改*...

    sqlprofiler+p6spy+配制

    通过使用SQL Profiler,你可以追踪SQL Server实例上的事件,如T-SQL语句的执行、锁争用、索引使用情况等。这有助于找出慢查询和不合适的索引,从而提高数据库性能。配置SQL Profiler通常涉及创建跟踪模板、选择要...

    p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用

    p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用 p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用 p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用

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

    这篇博客“使用p6spy完整显示hibernate的SQL语句”可能详细解释了如何配置和使用p6spy来跟踪Hibernate生成并执行的SQL。 首先,`p6spy`是一个Java数据库代理库,它可以拦截并记录所有通过JDBC发送到数据库的SQL语句...

    p6spy使用说明.doc

    P6Spy的工作原理是通过代理模式,拦截SQL语句并记录其执行情况,这有助于开发者进行性能优化和问题排查。 一、P6Spy简介 P6Spy是一个SQL日志记录器,它能够捕获并记录应用程序中的所有数据操作,包括插入、更新、...

    p6spy_sqlprofiler

    专门用来监控hibernate的sql输出,进行调试应用程序的工具,找了好久才找到,里面有个配置文件,记住realdriver是你的驱动,而在hibernate设置的驱动是这个驱动代理,p6spy的驱动,相当于在hibernate和数据库之间放...

Global site tag (gtag.js) - Google Analytics