b

SqlMapClientTemplate 의 내부 본문

spring framework

SqlMapClientTemplate 의 내부

dev.bistro 2013. 2. 1. 10:16


Source Link


public int delete(final String statementName, final Object parameterObject)

throws DataAccessException {


return execute(new SqlMapClientCallback<Integer>() {

public Integer doInSqlMapClient(SqlMapExecutor executor) throws SQLException {

return executor.delete(statementName, parameterObject);

}

});

}




1. 모든 처리를  public execute 메소드가 위임 받는다.

2. public execute 는SqlMapClientCallback<T> action 를 argument로 받는다.

3. delete, queryForObject 등의 위임을 하는 펑션들은 콜백 펑션을 선언해서 execute를 실행한다.

4. 실제적으로 executor 은 SqlMapClientTemplate에 DI된 sqpMapClient에서 가져와 쓰여진다.


이정도가.. 기본 로직인거고.

1. execute가 적절한 예외처리를 해줌으로서 Exception에 대한 부담이 줄어든다.

2. 적절한 공통코드를 알아서 처리해준다(close같은..)

SqlMapClientTemplate은 여러이유에서 SqlMapClient를 래핑한 Helper 클래스 이다.

템플릿 패턴의 모범적인 적용사례(?)

Comments