2014-12-04 76 views
0

有沒有辦法記錄運行在Tomcat中的應用程序讀取/寫入的所有數據庫表(以及其他對象)?所有數據庫訪問都通過Hibernate(通過Spring連接)或Sql2o來執行。記錄JDBC訪問的所有數據庫對象

我們正在遷移遺留數據庫,自動將實際使用的表與純粹遺留的表分開(我們有很多這些!),這將非常好。

謝謝!

+0

如果需要表格,您可以建立JDBC連接並說'select * from tab'。 – hemanth 2014-12-04 09:09:59

+0

你可以記錄所有的sql請求(hibernate有它的選項),但是看起來你的映射更容易嗎?不知道Sql2o是什麼,但認爲它也可以記錄sql。 – talex 2014-12-04 09:15:55

+1

恕我直言,沒有一個100%可靠。然而,您可能會嘗試配置類似http://p6spy.github.io/p6spy/的內容,然後在一週後,嘗試對日誌文件中的每個舊數據庫表名進行grep。那些沒有被grep發現的東西至少在一個測試周中沒有被使用過。 – Michal 2014-12-04 09:18:59

回答

1

您可以創建新的Aspect,因爲您已經在使用Spring,並且監控您的所有讀/寫服務,所以每次調用它時,都可以記錄它。

它應該很容易,定義新的方面(f.e.myAspect),定義之前/之後或循環操作(這將記錄您的表名稱),並將註釋放在您的服務(@MyAspect)上。

另一種方法是在你的表上創建觸發器(不知道這是否是一個選項),但是我認爲是一個方面......這是更清潔的方法。

相關問題