使用Spring的JdbcTemplate,我一直在試圖找出一種乾淨的方式來記錄DAO層中的異常,但似乎無法弄清楚。我想記錄使用和參數的SQL語句。Spring JdbcTemplate如何記錄異常參數?
例如,在addStoreSql是一個參數化的語句
public int addStore(Store store) {
return jdbcTemplate.update(addStoreSql, store.getId(), store.getName());
}
我在做類似的東西..
public int addStore(Store store) {
try{
return jdbcTemplate.update(addStoreSql, store.getId(), store.getName());
} catch (DataAccessException ex) {
logger.error("exception on deleting store - " + store.toString(), ex);
throw ex;
}
}
我的問題,有沒有寫這個在許多DAO任何清潔劑的方式方法?可能在記錄器級別或某個Spring庫?或者這是最乾淨的方式(或者上述代碼甚至不好)?
我有多個方法基本上做同樣的事情,接受一個對象,將字段傳遞給查詢並返回結果。
我認爲我把這個標記爲重複的問題應該回答你的問題。可能最常用的解決方案是使用代理驅動程序(p6spy或log4jdbc),這是Balus的答案涵蓋的。我不喜歡catch-log-rethrow,每次出現超過一次的記錄異常會使日誌難以閱讀。 – 2014-10-02 15:01:44
那麼這個鏈接是用於我知道的標準java jdbc庫。但我的問題與_Spring_庫有關。我覺得我可能會錯過一些東西,可能使用AOP?或者也許是Spring的一些日誌功能,它不是標準的java jdbc庫的一部分。 – 2014-10-02 15:05:58
我不這麼認爲,但看到它會很有趣。在問題中加上澄清(使其更加明確),然後我會重新打開。 – 2014-10-02 15:09:05