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

p6spy介绍

 
阅读更多
本文转载至http://www.cnblogs.com/xiziyin/archive/2009/12/21/1628921.html   西子吟

P6spy是什么?


P6Spy 是针对数据库访问操作的动态监测框架(为开源项目,项目首页:www.p6spy.com)它使得数据库数据可无缝截取和操纵,而不必对现有应用程序的代码作任何修改。P6Spy 分发包包括P6Log,它是一个可记录任何 Java 应用程序的所有JDBC事务的应用程序。其配置完成使用时,可以进行数据访问性能的监测。

我们最需要的功能,查看sql语句,不是预编译的带问号的哦,而是真正的数据库执行的sql,更直观,更简单。
下载地址:http://cid6adab3222e64b22c.office.live.com/self.aspx/.Public/java/jar/p6spy-install.zip
需要准备什么?


我们最需要的是这些:

Spy.properties是p6spy的配置文件,里面定义了类似log4j的日志格式,文件路径等。

P6spy.jar则是主要的jar文件。


使用maven的可以直接加入p6spy依赖,但是spy.properties依旧得copy啦~
[img] http://pic002.cnblogs.com/img/czy88840616/200912/2009122115411734.jpg[/img]
开始一个demo

1、  copy压缩包里的spy.properties到classpath下,你想敲也可以…………

2、  打开spy.properties,里面比较重要的有

realdriver=org.gjt.mm.mysql.Driver

代表真正的数据库驱动

上面有一些注释的驱动,直接把#号去掉就可以,保留一个生效即可


我本地因为有一个mysql数据库来测试,所以我使用mysql驱动

3、  简单地使用spring的jdbc模板来查询,测试输出的sql


<bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource">

      <constructor-arg ref="dataSourceTarget"></constructor-arg>

</bean>

这段表明了使用p6spy来监控sql,相当于一个代理的数据源,但是实际上引用的还是我们自己的真正的数据源,但是这里使用构造注入不太友好,呵呵。

4、  简单执行demo
代码

package p6spy;

 

import java.util.List;

 

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.springframework.jdbc.core.JdbcTemplate;

 

public class SqlDemo {

   public static void main(String[] args) {

      ApplicationContext context = new ClassPathXmlApplicationContext("p6spy/spring.xml");

      JdbcTemplate jdbcTemplate = (JdbcTemplate) context.getBean("jdbcTemplate");

      List list = jdbcTemplate.queryForList("select * from user where id=?", new Object[]{1});

      System.out.println(list.size());

   }

}

其中包含一个带参数的sql    select * from user where id=?



成功运行后查看日志,默认的文件名为spy.log,会生成在项目根目录下。

看看,是不是预编译的sql和实际的sql都打出来了



如果出现

Warning: driver com.mysql.jdbc.Driver 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

出现这句话的时候把deregisterdrivers=true



对于一个已经存在的工程,我们只要做3步就可以了

1、  导入p6spy.jar包

2、  将工程的数据库驱动换成相对应的p6spy驱动

3、  将spy.properties的真实驱动项指向你真正的驱动

Enjoy it……





这个包在测试的时候相当的方便,特别是调试sql的时候。。。
分享到:
评论

相关推荐

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

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

    p6spy-sql监控

    p6spy-sql监控 p6spy-sql监控 p6spy-sql监控

    p6spy简介显示hibernate配置

    p6spy简介,p6spy完整显示hibernate的SQL语句 包括参数,spring p6spy 配置

    p6spy.jar下载

    p6spy

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

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

    Spring使用p6spy监控sql

    p6spy.jar 博文链接:https://lxy19791111.iteye.com/blog/131293

    p6spy java 使用

    p6spy使用 sql跟踪 排除resultset 去掉问号

    P6Spy的使用.txt

    集成P6spy 一 系统集成P6spy

    p6spy使用说明.doc

    p6spy监控jdbc连接oracle查看执行时长,使用配置说明

    sqlprofiler+p6spy+配制

    配置P6Spy和SQL Profiler

    Spring 3.0+Struts2+Mybatis 3 + p6spy 平台框架

    这是自己整合的Spring 3.0+Struts2+Mybatis 3 + p6spy +ehcache的平台框架,内含一点示例代码,目前ehcache没有使用。直接编译后发布就能用 测试环境基于JDK1.6+Tomcat 6.0. 大家拿到后请根据实际情况修改 ...

    p6spy去掉结果集版

    p6spy去掉结果集版 我的博客有相关的使用说明.

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

    p6spy 是对 mybatis、hibernate 的 SQl 监控,提高在开发过过程中效率。 本人直男癌一枚,希望我提供的 p6spy 的配置和使用对亲们有帮助,谢谢!

    p6spy过滤resultset版

    p6spy支持jpa(如hibernate、ibatis/mybatis)打印完整sql。 此为本人在p6spy源码基础上进行修改,使其能在sql日志中过滤resultset,是sql更简洁,开发更方便。

    p6spy工具类

    p6spy是一种可以在控制台上打印出sql语句的工具类,可以和多种数据库交互框架结合在一起,调试程序非常方便

    p6spy精简版-跟踪sql工具

    对p6spy的使用做了些简化,其实主要目的有两个:1是为了学习p6spy的源码,2是简化使用方法,使一些非开发人员也能使用此工具监听sql,压缩包内附源码和说明文档

    p6spy的maven工程源码

    p6spy用于监听SQL,配置简答,但是git上下载的是gradle版本,需要重新转maven方可运行,本版本是maven工程,导入即可使用。

    p6spy install

    p6spy install.sql statement

    p6spy改造去掉resultset和添加每日归档

    附件中就是p6spy改造去掉resultset和添加每日归档的jar。 方法:打开eclipse,导入-eclipse,进行自己的修改(已改完) 将src复制到-src下面,运行ant命令即可在dist生成p6spy.jar文件 参照sp6.properties进行修改...

    p6spy.rar输出完整带参sql

    p6spy.rar工具类,可输出完整sql,支持jdk1,5,亲测可用

Global site tag (gtag.js) - Google Analytics