스프링의 JdbcTemplate을 사용하여 DAO 레이어에서 예외를 기록하는 명확한 방법을 찾아 내려고했지만 그 사실을 알 수없는 것 같습니다. 난 및 매개 변수를 사용하는 SQL 문을 기록 싶어요. addStoreSql 매개 변수화 된 문Spring JdbcTemplate 예외에 대한 매개 변수를 기록하는 방법은 무엇입니까?
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 라이브러리에서 가능합니까? 아니면 가장 깨끗한 방법입니까? (또는 위의 코드가 좋지 않습니까?)
기본적으로 동일한 작업을 수행하는 여러 메소드가 있으며, 객체를 가져 와서 필드를 쿼리에 전달하고 결과를 반환합니다. 종종 중복에 이르게하는 경우 로그 항목을
logger.error("exception on deleting store - " + store.toString(), ex);
throw ex;
때문에 :
나는이 질문을 내가 귀하의 질문에 답변해야한다고 생각한다고 생각합니다. 아마도 가장 일반적인 솔루션은 Balus의 대답을 다루는 프록시 드라이버 (p6spy 또는 log4jdbc)를 사용하는 것입니다.catch-log-rethrow를 싫어하므로 발생 당 두 번 이상 예외를 기록하면 로그를 읽기가 더 어려워집니다. –
그 링크는 내가 알고있는 표준 java jdbc 라이브러리를위한 링크입니다. 하지만 내 질문은 _Spring_ 라이브러리와 관련이 있습니다. AOP를 사용하여 뭔가를 놓친 것 같은 기분이 들까? 또는 표준 Java jdbc 라이브러리의 일부가 아닌 Spring의 일부 로깅 기능. –
나는 그렇게 생각하지 않지만, 보는 것은 재미있을 것이다. 질문에 명확한 설명을 추가하면 (더 명확하게) 다시 열어 보겠습니다. –