修改P6SPY增强ResultSet输出控制的功能

本文介绍了作者如何修改P6SPY的源代码,以避免在大量查询结果时输出ResultSet,以及如何调整日志设置,只显示包含特定策略的SQL。通过对P6ResultSet和FormattedLogger类的修改,作者实现了更可控的调试体验,允许在spy.properties文件中通过includecategories和exportcategories属性控制是否显示结果集。
摘要由CSDN通过智能技术生成

Authorddwcyl

今天,同事反应在使用P6SPY跟踪SQL时感觉不愉快的是对每条查询结果,P6SPY总将其输出,如果查询结果集多的情况下,非常难以调试;另外,在调试时主要关注,替换绑定变量后真实的SQL,来检验业务的正确性,对变更的SQL,并不是太在意。
   
因为这两个问题的原因,查看了一下P6SPY的源代码,将其涉及的P6ResultSetFormattedLogger两个类进行了修改,以满足项目调试的需要。
  P6ResultSet
相关函数next()修改如下,修改的地方用红色粗体标出:

原始代码为:

    public boolean next() throws SQLException {

        // only dump the data on subsequent calls to next

        if (currRow > -1){

            long startTime = System.currentTimeMillis();       

            StringBuffer buffer = new StringBuffer();

        String comma = "";

            for (Iterator itr = resultMap.keySet().iterator(); itr.hasNext();){

               String index = (String)itr.next();

               buffer.append(comma);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值