`
钟文锋
  • 浏览: 1166 次
文章分类
社区版块
存档分类
最新评论

使用P6Spy打印Resin执行的SQL语句

阅读更多

 

系统开发时,经常要看程序执行的SQL。使用Hibernate开发的系统设置了show_sql=true后,只能看到预编译的SQL语句,看不到传到SQL的具体参数。如:

 

select xnxqdm0_.XNXQM as XNXQM763_0_, xnxqdm0_.XNXQMC as XNXQMC763_0_ from CODE_XNXQDMB_V xnxqdm0_ where xnxqdm0_.XNXQM=?

 使用开源软件P6Spy,能把SQL所用的具体参数打印出来,如:

 

 

07-24-13 09:40:13:439|1|22|statement|select xnxqdm0_.XNXQM as XNXQM763_0_, xnxqdm0_.XNXQMC as XNXQMC763_0_ from CODE_XNXQDMB_V xnxqdm0_ where xnxqdm0_.XNXQM=?|select xnxqdm0_.XNXQM as XNXQM763_0_, xnxqdm0_.XNXQMC as XNXQMC763_0_ from CODE_XNXQDMB_V xnxqdm0_ where xnxqdm0_.XNXQM='2011-2012-1'

 P6Spy包含一个jar文件以及spy.properties配置文件。下面以在Linux系统的Resin3.0.28中配置Oracle链接为例介绍配置过程。

 

<database>
    <jndi-name>jdbc/OracleDB</jndi-name>
        <driver type="oracle.jdbc.OracleDriver">

 改成

 

 

<database>
  <jndi-name>jdbc/OracleDB</jndi-name>
     <driver type="com.p6spy.engine.spy.P6SpyDriver">
  • 修改spy.properties如:

 

module.log=com.p6spy.engine.logging.P6LogFactory
realdriver=oracle.jdbc.OracleDriver
realdriver2=oracle.jdbc.driver.OracleDriver
realdriver3=
deregisterdrivers=true
executionthreshold=
outagedetection=false
outagedetectioninterval=
include =
exclude =
sqlexpression =
filter=false
trace = true
autoflush = true
dateformat=MM-dd-yy HH:mm:ss:SS
includecategories=statement,batch,commit,rollback
#error,info,debug,statement,batch,commit,rollback,result
excludecategories=
stringmatcher=
stacktrace=false
stacktraceclass=
reloadproperties=false
reloadpropertiesinterval=60
useprefix=false
appender=com.p6spy.engine.logging.appender.StdoutLogger
#appender=com.p6spy.engine.logging.appender.Log4jLogger
#appender=com.p6spy.engine.logging.appender.FileLogger
logfile = c:\spy.log
append=true
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout

log4j.logger.p6spy=INFO,STDOUT

 

 

  • 以上修改做完后,重启应用,即可看到P6Spy打印的带参数内容的SQL语句。值得注意的是realdriver得配置两个才有效果。
realdriver=oracle.jdbc.OracleDriver
realdriver2=oracle.jdbc.driver.OracleDriver

 

分享到:
评论

相关推荐

    使用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完整显示hibernate的SQL语句

    P6Spy是一个开源的JDBC代理库,它允许我们监控并记录应用通过JDBC执行的所有数据库操作,包括那些由Hibernate生成的SQL语句。它不仅可以提供完整的SQL语句,还能够提供执行时间、性能指标等详细信息,这对于优化...

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

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

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

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

    p6spy-sql监控

    1. **SQL日志记录**:P6Spy可以捕获并记录所有执行的SQL语句,包括原始的SQL、执行时间、返回结果等,这对于追踪数据库操作和性能分析非常有用。 2. **日志格式自定义**:P6Spy允许用户通过配置文件定制日志输出...

    p6spy dataSource 配置 监听真实sql语句

    p6spy dataSource 配置 监听真实sql语句

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

    P6Spy和IronTrack SQL是两款用于数据库监控的工具,它们可以帮助开发者和运维人员深入理解SQL查询的执行情况,从而找出性能瓶颈并进行优化。 首先,P6Spy是一个开源的Java框架,它允许我们在不修改应用程序代码的...

    用 p6spy 来观察 Java 程序中执行的所有 SQL 语句.docx

    p6spy 是一个开源的 Java 框架,它的主要功能是在不修改代码的情况下,监控和记录 Java 应用程序中执行的所有 SQL 语句。这个工具对于开发者来说非常有用,因为它可以帮助定位性能瓶颈,特别是在使用 ORM(对象关系...

    P6spy 和 SqlProfiler 打印JDBC真实SQL

    这就引入了两个强大的工具——P6Spy和SqlProfiler,它们专门用于打印和分析JDBC执行的真实SQL。 P6Spy是一个开源的Java库,设计用于监控应用与数据库之间的通信。它通过拦截JDBC调用来捕获SQL语句,并将这些信息...

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

    1. **SQL日志记录**:P6Spy 可以捕获并记录应用程序执行的所有SQL语句,包括参数和执行时间,这对于调试和性能分析非常有用。 2. **格式化输出**:P6Spy 提供了自定义的日志格式,可以按照开发者的需求定制输出信息...

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

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

    p6spy java 使用

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

    P6Spy 提供数据库性能监控和剖析工具

    通过 P6Spy 我们可以对 SQL 语句进行拦截,相当于一个 SQL 语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。P6Spy 用 Log4J 来记录 JDBC 调用的日记信息。 自从 2003 年 11 月 30 日 P6Spy 版本 1.3 ...

    p6spy精简版-跟踪sql工具

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

    p6spy.rar输出完整带参sql

    - **问题排查**:当应用程序遇到数据库相关问题时,P6Spy可以帮助快速定位问题,查看实际执行的SQL语句。 - **性能调优**:通过记录和分析SQL执行时间,可以找出性能低下或资源消耗大的SQL语句。 - **开发测试**...

    p6spy使用说明.doc

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

    用p6spy来观察Java程序中执行的所有SQL语句[整理].pdf

    p6spy能够拦截并记录通过JDBC执行的所有SQL语句,包括PreparedStatement中的参数,使得SQL语句的分析和优化变得更加方便。 【SQL语句优化的重要性】 在企业级应用中,SQL语句的性能是决定整体系统效率的关键因素之...

    weblogic server 11g +p6spy +sql profiler 配置

    P6Spy则是一个开源的数据库监控工具,它能够帮助开发者和管理员追踪和分析SQL执行情况,提高数据库性能。SQL Profiler是P6Spy的一个组件,用于对数据库操作进行详细分析,找出潜在的性能瓶颈。 配置WebLogic Server...

    p6spy简介显示hibernate配置

    将P6Spy与Hibernate结合使用,可以揭示由Hibernate生成并执行的实际SQL语句,包括参数,这对于理解和优化Hibernate的行为至关重要。 1. **配置P6Spy**:首先,需要在项目的类路径下添加P6Spy的jar文件,并在数据库...

Global site tag (gtag.js) - Google Analytics