我們的web應用程序當前直接對我們的Oracle數據庫執行JDBC調用。我們通過靜態getConnection(String client)方法調用DBMS_APPLICATION_INFO包來標記每個連接,例如,在Spring JDBC中使用Oracle的DBMS_APPLICATION_INFO包
CallableStatement pstmt = conx.prepareCall("{call DMBS_APPLICATION_INFO.SET_CLIENT_INFO(?)}");
pstmt.setString(1, "my client");
pstmt.executeUpdate();
這已經證明很有用,我們希望在我們切換到Spring JDBC時繼續這一點。我認爲如果我們將每個查詢作爲一個事務,然後在執行查詢(或多個查詢)之前調用DBMS_APPLICATION_INFO,這可以起作用,但這需要將上面的代碼添加到我們現在獲得連接的每個地方。在事務之外,它看起來不可能,因爲Spring JDBC打開並關閉了與每個查詢的連接。
在Spring中,JDBC有沒有一種方法可以像現在一樣在引擎蓋下調用DBMS_APPLICATION_INFO,傳遞一個字符串來標記連接?
謝謝!