文档章节

使用P6Spy打印sql语句方便进行调试

开源中国首席观察员
 开源中国首席观察员
发布于 2014/11/12 16:15
字数 272
阅读 113
收藏 1
点赞 0
评论 0

1、jar包下载   p6spy-1.3.jar.zip

2、新建spy.properties

#module.log=com.p6spy.engine.logging.P6LogFactory
#重写P6LogFactory
module.log=com.spy.test.P6LogFactory
#设置应用真正使用的JDBC Driver
realdriver=com.mysql.jdbc.Driver
#设置使用p6spy driver来做代理
deregisterdrivers=true
#取消JDBC URL前缀,if=true then url must be prefixed with p6spy:
useprefix=true
#配置记录Log例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
excludecategories=info,debug,result,batch,resultset
#日志输出到控制台
appender=com.p6spy.engine.logging.appender.StdoutLogger
#时间格式
dateformat=hh:mm:ss

3、spring数据源配置,封装原来的数据源即可

<bean name="dataSourceDBCP" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
</bean>
<bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource">
	<constructor-arg ref="dataSourceDBCP"></constructor-arg>
</bean>

4、重写P6LogFactory,目的是为了过滤resultset,一定要使用重写的P6LogFactory,否则将会输出大量重复的sql语句

package com.spy.test;

import java.sql.ResultSet;
import java.sql.SQLException;

import com.p6spy.engine.spy.P6Statement;

public class P6LogFactory extends com.p6spy.engine.logging.P6LogFactory{

	@Override
	public ResultSet getResultSet(ResultSet real, P6Statement statement,String preparedQuery, String query) throws SQLException {
		return real;
	}

}

5、调试sql输出结果集

04:14:23|16|0|statement|select count(1) 
	from t_trading a 
	 
	where a.customerId=?|select count(1) 
	from t_trading a 
	 
	where a.customerId='151'



© 著作权归作者所有

共有 人打赏支持
开源中国首席观察员
粉丝 5
博文 14
码字总数 11513
作品 0
顺德
高级程序员
打印hibernate的SQL语句的几种办法

摘要 使用hibernate时,我们常常需要查看hibernate实际提交到数据库的SQL及相关参数。这里提供几种方案,供大家在开发中使用。 使用hibernate-configuration 这也许是最简单的一种配置。我们...

winters1224 ⋅ 2017/01/24 ⋅ 0

P6Spy配置使用

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

liuzhenlife ⋅ 2017/04/23 ⋅ 0

监控和剖析数据库操作-P6Spy、SQL Profiler、IronTrack SQL 使用简介

在我们 Java 开发应用程序的过程中,难免会碰到系统的性能问题,特别在企业应用的开发过程中,都会与数据库进行打交道。当我们碰到数据库性能时,最有效的就是直接跟踪每一个 SQL 语句的执行...

jiyayun ⋅ 2012/11/05 ⋅ 0

让控制台打印的Hibernate显示SQL语句显示绑定参数值

使用Hibernate提供的内置属性true只能输出类似于下面的SQL语句: Hibernate: insert into student(name, sex, age, cardId, classroomid, id) values (?, ?, ?, ?, ?, ?) 这样不利于程序的调...

长平狐 ⋅ 2013/01/06 ⋅ 0

P6Spy 2.0.1 发布,SQL 语句拦截

P6Spy 2.0.1 发布,此版本修复了签名 jar 的使用问题。 P6Spy是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架。 通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录...

oschina ⋅ 2014/03/30 ⋅ 3

p6spy-2.1.4 发布,SQL 语句拦截

p6spy-2.1.4 发布,详细改进请看 issues 列表:https://github.com/p6spy/p6spy/issues。 此版本现已提供下载:src="https://github.com/p6spy/p6spy/archive/p6spy-2.1.4.zip" href="https:......

oschina ⋅ 2015/05/10 ⋅ 5

P6Spy 2.1.0 发布,SQL 语句拦截

P6Spy 2.1.0 发布,此版本更新内容如下: P6ConnectionPoolDataSource 合并到 P6DataSource 现在记录通过 CallableStatement 上的名字绑定变量集 日志记录支持 setAppender() 支持 Glassfis...

oschina ⋅ 2014/06/17 ⋅ 9

P6Spy 2.1.1 发布,SQL 语句拦截

P6Spy 2.1.1 发布,现已提供下载,尚未找到相关更新说明:) P6Spy是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架。 通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的...

oschina ⋅ 2014/09/04 ⋅ 7

p6spy 2.2.0 发布,SQL 语句拦截

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

oschina ⋅ 2016/03/23 ⋅ 10

p6spy-2.1.3 发布,SQL 语句拦截

p6spy-2.1.3 发布,此版本现已提供下载,修复了一个 bug: #275 - P6OutagePreparedStatementSetParameterValueDelegate fails with java.lang.ArrayIndexOutOfBoundsException - Thanks to ......

oschina ⋅ 2015/01/26 ⋅ 5

没有更多内容

加载失败,请刷新页面

加载更多

下一页

懒惰根本就不存在

简评:芝加哥大学心理学教授,懒惰根本就不存在。(本文表面讲行为心理学实则讲教育) 金句:以好奇而不是判断来回应一个人的无效行为,是非常有帮助的。 本文「我」代表原作者 E Price。 自...

极光推送 ⋅ 28分钟前 ⋅ 0

Excel提取单元格中最后一个“.”后面的数据

java.lang.String ----- String =TRIM((MID(SUBSTITUTE(B2,".",REPT(" ",99)),(LEN(B2)-LEN(SUBSTITUTE(B2,".","")))*99,99)))...

klog ⋅ 30分钟前 ⋅ 0

mac远程桌面

下载安装remote-desktop-mac Mac beta 客户端 mac通过远程桌面访问windows服务器。

亚林瓜子 ⋅ 34分钟前 ⋅ 0

firrtl

动手---sbt(2)之后,再回头看 chisel第一个实验,根据 https://github.com/freechipsproject/firrtl 发现firrtl没有执行sbt assembly命令,重新执行这个命令,结果成功。如下图: joe@joe-As...

whoisliang ⋅ 38分钟前 ⋅ 0

NIO

一、通道(Channel):用于源节点与目标节点的连接。在 Java NIO 中负责缓冲区中数据的传输。Channel 本身不存储数据,因此需要配合缓冲区进行传输。 二、通道的主要实现类 java.nio.channel...

stars永恒 ⋅ 39分钟前 ⋅ 0

Android悬浮窗的实现

0. 前言   现在很多应用都使用到悬浮窗,例如微信在视频的时候,点击Home键,视频小窗口仍然会在屏幕上显示。这个功能在很多情况下都非常有用。那么今天我们就来实现一下Android悬浮窗,以...

猴亮屏 ⋅ 39分钟前 ⋅ 0

日志采集中的关键技术分析

概述 日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数据以生成可读性的报告以此...

tqyin ⋅ 40分钟前 ⋅ 0

使用Navicat将数据导出为text文本 然后再导入

将数据导出为text文本效率很高 1. 准备工作 1.1 准备表结构 1.2 目标库 执行生成表结构sql 2.将表数据导出为text文本 生成的text文本 3. 目标库 导入text 4.效果...

Lucky_Me ⋅ 46分钟前 ⋅ 0

IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)

文章介绍了idea下,项目乱码、控制台乱码及运行tomcat控制台乱码的解决方案,文章链接:https://www.cnblogs.com/vhua/p/idea_1.html

Funcy1122 ⋅ 49分钟前 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 54分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部