由于公司项目架构使用hibernate,在调试程序的时候hibernate打印的sql都是带占位符的,不是最原始的sql语句,这对我们开发人员来说是很痛苦的一件事情.经过一番波折在网上找到了这么一个jar包,它的原理是:拦截最底层的jdbc连接,监控所有jdbc操作,所以说会影响性能,建议使用的童鞋在项目发布的时候最好把他替换回来.
jar包下载地址:http://download.csdn.net/detail/qq413041153/4177575
使用方法很简单:
1.如果你的datasource配置在hibernate或者spring的配置文件中,那么你需要将jar包放到编译路径下;如果你使用的是jndi之类的在tomcat配置文件里配置的数据源,那么就需要将jar放到tomcat的lib里面.提醒一句 :如果你这里是tomcar的jndi配置的话,需要删除tomcat工作目录项目内容,重新编译.
2.将数据源的classname替换成com.p6spy.engine.spy.P6SpyDriver,这个类会拦截你的数据库连接.
3.将spy.properties配置文件放到src根目录.(这里的src是指的你源码编译的初始根目录, 一般不改动的话就是src,有的项目如果需要多语版版本的可能是src/java是java源码src/c是别的源码,这时候你就要放到src/java下面).
4.找到realdriver把它的值改成你自己的数据库classname 我的是oracle,oracle.jdbc.driver.OracleDriver如果其他realdriver有打开的请注释掉.如果你需要使用多个数据源,可以对realdriver编号例如: realdriver1=com.mysql.jdbc.Driver
realdriver2=com.informix.jdbc.IfxDriver
realdriver3=COM.ibm.db2.jdbc.net.DB2Driver
realdriver4=org.gjt.mm.mysql.Driver
5.找到excludecategories这个是定义你不喜欢的输出信息,也就是说他的值将不会被输出到log或打印在控制台.可的值有: error, info, batch, debug, statement,commit, rollback, result, resultset.这里的resultset是请过修改源码后加上的官方是不支持屏蔽到这个属性的.
6.找到appender,这个是定义你的输出指向,是输出到log4j,还是控制台,还是文件.可选值分别是: appender=com.p6spy.engine.logging.appender.Log4jLogger
appender=com.p6spy.engine.logging.appender.StdoutLogger
appender=com.p6spy.engine.logging.appender.FileLogger
7.找到logfile,这个属性是定义你的log日志文件的存放位置.自己任意即可,如果你没选择输出到配置文件,其值默认即可.
8.找到append,这个属性是定义当你指定输出到文件的时候,是每次都追加到文件末尾还是每次覆盖,一般的都是追加吧 true即可.
最后说一下,p6spy官方现在已经找不到了,很旧没更新了,在文档里说是支持log4j的但是我调试了很久,
没能成功.不过我觉得这个功能可有可无,因为这个p6spy是有点耗费性能的 也就我们开发的时候用用,一般选
择输出到控制台就over了.Ok that's all.
分享到:
相关推荐
P6Spy是一个开源的JDBC代理库,它允许我们监控并记录应用通过JDBC执行的所有数据库操作,包括那些由Hibernate生成的SQL语句。它不仅可以提供完整的SQL语句,还能够提供执行时间、性能指标等详细信息,这对于优化...
P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...
这篇博客“使用p6spy完整显示hibernate的SQL语句”可能详细解释了如何配置和使用p6spy来跟踪Hibernate生成并执行的SQL。 首先,`p6spy`是一个Java数据库代理库,它可以拦截并记录所有通过JDBC发送到数据库的SQL语句...
4. **查看结果**:启动应用后,P6Spy将开始记录所有通过Hibernate执行的SQL,并按照配置的方式输出。这将帮助开发者了解SQL的执行情况,找出可能的性能问题。 通过P6Spy,开发者可以更深入地了解和控制数据库操作,...
对于开发者而言,P6Spy 是一个强大的调试和性能分析工具,尤其在使用MyBatis或Hibernate等ORM框架时,能够帮助我们更好地理解和优化数据库操作。 **P6Spy 的主要功能** 1. **SQL日志记录**:P6Spy 可以捕获并记录...
p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用 p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用 p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用
p6spy支持jpa(如hibernate、ibatis/mybatis)打印完整sql。 此为本人在p6spy源码基础上进行修改,使其能在sql日志中过滤resultset,是sql更简洁,开发更方便。
P6Spy是一款强大的开源数据库监控工具,主要用于Java应用程序中的数据库活动监控。它可以在不修改代码的情况下,记录并分析SQL语句,提供详细的执行性能信息,这对于优化数据库操作、排查问题和提升应用程序性能非常...
内含p6spy-3.6.0.zip,p6spy最新Hibernate和Mybatis拦截并格式化sql配置.txt两个文件,用于调试监控项目运行状态,亲测可用,测试整理出来花了我很长时间的,好用不可多得!
这个工具对于开发者来说非常有用,因为它可以帮助定位性能瓶颈,特别是在使用 ORM(对象关系映射)框架如 Hibernate、JPA 等时,这些框架通常会生成复杂的 SQL 语句,而直接查看源代码并不容易获取这些语句。...
P6Spy可以帮助我们监控这些操作,记录执行的SQL语句,包括它们的执行时间、返回结果等信息。这有助于识别可能引起性能瓶颈的慢查询,或者发现可能导致错误或异常的数据输入。 配置P6Spy通常涉及以下几个步骤: 1. ...
专门用来监控hibernate的sql输出,进行调试应用程序的工具,找了好久才找到,里面有个配置文件,记住realdriver是你的驱动,而在hibernate设置的驱动是这个驱动代理,p6spy的驱动,相当于在hibernate和数据库之间放...
- **概述**:文档提到p6spy可以用于拦截Hibernate通过JDBC执行的SQL语句。Hibernate是一个流行的ORM框架,用于简化Java应用中的数据访问操作。 - **具体步骤**: 1. **替换数据库驱动**:正如前文所述,首先需要将...
【p6spy简介】 p6spy是一个开源的Java库,设计用于监视和分析应用程序中执行的SQL语句。...后续篇章将更深入地探讨p6spy的定制以及与其他性能监控工具的配合使用,帮助开发者更有效地管理和优化SQL执行。
# oracle driver # realdriver=oracle.jdbc.driver.OracleDriver # mysql Connector/J driver ... # informix driver ... # ibm db2 driver ...# the mysql open source driver realdriver=org.gjt.mm.mysql.Driver ...
在企业做项目时如果用了hibernate会有个头疼问题,就是如何让输出sql方便查看,因为出了问题时,要去查错时sql日志会给我们很大帮助,但hibernate通过配p6spy输出很乱,且只能输了到spy.log中,很不好查看,这里是我...
与hibernate配合使用实现sql语句参数的打印及其他的一些性能方面的监控,有利于优化sql代码,用法上网随便一搜很多的
标题中的“监控SQL输出-可以查看HQL转成SQL的结果值”指的是在使用HQL(Hibernate Query Language)进行数据库操作时,如何通过某些工具或手段来观察这些高级查询语句被转换成底层数据库能理解的SQL语句的过程,并对...
IronTrack SQL是基于Apache许可证的开源工具,通过与开源JDBC驱动p6spy合作,提供了一个增强的对基于Hibernate的数据库应用的可视化调试和性能评测手段。 当开发者初次接触Hibernate时,他们通常会寻找方法来监控...