作者:邱洋
QQ:1964477

    雖然在hibernate中有show_sql選項(xiàng),但是顯示出來(lái)的語(yǔ)句大多類(lèi)似
    select * from xxx where value=?
    但是有時(shí)候我們需要得到完整的SQL語(yǔ)句,怎么辦呢?使用P6SPY就可以完成這個(gè)任務(wù)

    p6spy是一個(gè)開(kāi)源軟件,它可以跟蹤任何使用jdbc的應(yīng)用產(chǎn)生的數(shù)據(jù)庫(kù)操作。特別適合于監(jiān)控ejb服務(wù)器產(chǎn)生的 sql statements。
    官方網(wǎng)址:http://www.p6spy.com/
    目前p6spy 適用的應(yīng)用服務(wù)器包括jboss, atg, orion, jonas, iplanet, weblogic, websphere, resin and tomcat.

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

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