作者:邱洋
QQ:1964477

    雖然在hibernate中有show_sql選項,但是顯示出來的語句大多類似
    select * from xxx where value=?
    但是有時候我們需要得到完整的SQL語句,怎么辦呢?使用P6SPY就可以完成這個任務

    p6spy是一個開源軟件,它可以跟蹤任何使用jdbc的應用產生的數據庫操作。特別適合于監控ejb服務器產生的 sql statements。
    官方網址:http://www.p6spy.com/
    目前p6spy 適用的應用服務器包括jboss, atg, orion, jonas, iplanet, weblogic, websphere, resin and tomcat.

下面我介紹一下p6spy在tomcat應用程序上安裝的步驟:
(1)http://www.p6spy.com/download.html,下載zip包
(2)解壓出p6spy.jar spy.properties兩個文件
(3)將p6spy.jar 放入應用程序的WEB-INF/lib目錄,將spy.properties放入WEB-INF/classes目錄
(4)修改spy.properties

    realdriver  =com.mysql.jdbc.Driver  將這行前面的#去掉
    logfile     = c:/spy.log  修改一個你需要的日志文件名
   
(5)修改hibernate.xml,修改connection.driver_class的值為com.p6spy.engine.spy.P6SpyDriver
(6)重啟tomcat
(7)這樣在c:/下的spy.log記錄了數據庫的訪問情況。