p6spy簡單測試

jopen 10年前發布 | 47K 次閱讀 數據庫管理工具 P6Spy

P6Spy是一個可以用來在應用程序中攔截和修改數據操作語句的開源框架。

下載地址:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22p6spy%22%20AND%20a%3A%22p6spy%22

建議下載zip包,里面jar比較全。

網上的幾個p6spy例子都比較老,2.0版以上spy.properties配置有些改動。

當前最新版是v2.1,入門和配置,建議看官網文檔: http://p6spy.github.io/p6spy/2.0/configandusage.html

sql輸出,默認就兩種:com.p6spy.engine.spy.appender.SingleLineFormat(單行)和 com.p6spy.engine.spy.appender.MultiLineFormat(多行),兩者沒多大區別,覺的不夠用的 自行擴展com.p6spy.engine.spy.appender.MessageFormattingStrategy。


執行P6spyTest1得到如下結果(多行格式--MultiLineFormat):

#1403080487947 | took 63ms | statement | connection 0|select userid,username from t_user where id=?

select userid,username from t_user where id=1;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import com.p6spy.engine.spy.P6DataSource;
import com.p6spy.engine.spy.P6SpyDriver;


public class DBManager {
    static{
        initDatabase();
    }

    static String driverclass = "com.p6spy.engine.spy.P6SpyDriver";
//  static String url = "jdbc:mysql://192.168.2.54/test_sl?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull";
    static String url = "jdbc:p6spy:mysql://192.168.2.54/test_sl?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull";
    static String dbuser = "root";
    static String passwd = "123456";

    /**
     * 不需要<br/>
     * P6SpyDriver內已執行DriverManager.registerDriver(driver);
     */
    static void initDatabase(){     
//      try {
//          Driver driver = (Driver) Class.forName(driverclass).newInstance();
//          DriverManager.registerDriver(driver);
//      } catch (Exception e) {     
//          throw new RuntimeException(e);
//      }
    }

//  public static Connection getConnect() throws SQLException{
//      P6DataSource ds = new P6DataSource();
//      return ds.getConnection(dbuser, passwd);
//  }

    /**
     * 與getConnect()結果相同
     * @return
     * @throws SQLException
     */
    public static Connection getConnect1() throws SQLException{
        P6SpyDriver driver = new P6SpyDriver();     
        Properties prop = new Properties();
        prop.setProperty("user", "root");
        prop.setProperty("password", "hkgt123");        
        return driver.connect(url, prop);
//      return DriverManager.getConnection(url, prop);
    }

    public static Connection getConnect() throws SQLException{
        Properties prop = new Properties();
        prop.setProperty("user", "root");
        prop.setProperty("password", "hkgt123");
        return DriverManager.getConnection(url, prop);
    }
}

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!