由于公司项目架构使用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 Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...
虽然在hibernate中有show_sql选项,但是显示出来的语句大多类似 select * from xxx where value=? 但是有时候我们需要得到完整的SQL语句,怎么办呢?使用P6SPY就可以完成这个任务
p6spy简介,p6spy完整显示hibernate的SQL语句 包括参数,spring p6spy 配置
NULL 博文链接:https://28680360-qq-com.iteye.com/blog/1673095
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-3.6.0.zip,p6spy最新Hibernate和Mybatis拦截并格式化sql配置.txt两个文件,用于调试监控项目运行状态,亲测可用,测试整理出来花了我很长时间的,好用不可多得!
专门用来监控hibernate的sql输出,进行调试应用程序的工具,找了好久才找到,里面有个配置文件,记住realdriver是你的驱动,而在hibernate设置的驱动是这个驱动代理,p6spy的驱动,相当于在hibernate和数据库之间放...
p6spy 是对 mybatis、hibernate 的 SQl 监控,提高在开发过过程中效率。 本人直男癌一枚,希望我提供的 p6spy 的配置和使用对亲们有帮助,谢谢!
p6spy.rar工具类,可输出完整sql,支持jdk1,5,亲测可用
# 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代码,用法上网随便一搜很多的
4、使用p6spy 打印出hibernate 中已经替换了占位符参数的sql语句,为hibernate的调试不在感到苦恼 系统部署我使用的ant 部署,代码包含ant部署文件 skyline\coding\src\config\jdbc.properties 为数据库配置...
使用ibatis 提供的ORM 机制,对业务逻辑实现人员而言,面对的是纯粹的Java 对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求...
12)、SQL监控使用P6SPY。 13)、JS和CSS压缩使用YUI Compressor。 14)、JAVA代码混淆使用Allatori。 15)、获取系统信息使用Sigar。 16)、单元测试使用JUnit。 17)、配置文件加密使用Jasypt。 18)、缓存使用...
hibernate封装底层数据库操作,提供持久化数据服务 spring管理hibernate--数据源,事务 dao层提供数据库访问接口;service层(事务控制)提供业务接口 ...p6spy+sqlprofile sql监控调优 jUnit测试
xml java系统源码 lanjerry-framework 简介 基于 SpringBoot2、JWT和Shiro...P6spy 3.8.5 权限框架 Shiro 1.4.1 身份认证 JWT 3.3.0 数据校验 HibernateValidator 6.0.17.Final 工具包 HuTool 4.5.16 接口文档 Swagg
Maven框架项目该项目不再更新维护,请移步该项目基于maven3.0构建的,项目中融合了Struts1 , Struts2 , Spring , SpringMVC , ...项目中的持久化框架sql语句的跟踪分别采用log4jdbc结合log4j和p6spy ,在控