文档章节

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

开源中国首席观察员
 开源中国首席观察员
发布于 2014/11/12 16:15
字数 272
阅读 142
收藏 2

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'



© 著作权归作者所有

共有 人打赏支持
下一篇: mysql常用
开源中国首席观察员
粉丝 5
博文 24
码字总数 11513
作品 0
顺德
高级程序员
私信 提问
加载中

评论(1)

tanliwei
tanliwei
maven
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>1.3</version>
</dependency>
p6spy-2.1.4 发布,SQL 语句拦截

p6spy-2.1.4 发布,详细改进请看 issues 列表:https://github.com/p6spy/p6spy/issues。 此版本现已提供下载:https://github.com/p6spy/p6spy/archive/p6spy-2.1.4.zip。 P6Spy是一个可以用......

oschina
2015/05/10
1K
5
监控和剖析数据库操作-P6Spy、SQL Profiler、IronTrack SQL 使用简介

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

jiyayun
2012/11/05
0
0
P6Spy 3.8.1 发布,无缝截取数据库数据框架

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

局长
2018/12/17
0
0
P6Spy 2.1.1 发布,SQL 语句拦截

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

oschina
2014/09/04
1K
7
让控制台打印的Hibernate显示SQL语句显示绑定参数值

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

长平狐
2013/01/06
3.7K
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
56分钟前
1
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
今天
3
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
3
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
2
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部