이제 필요가 없어진 DataSource 인스턴스 변수는 제거하자
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
⇒ User 용 RowMapper 콜백을 메소드에서 분리해 중복을 없애고 재사용되게 하자.
RowMapper 는 매번 오브젝트를 새로 만들어야 할까?
// 재사용 가능하도록 독립
private RowMapper<User> userMapper = new RowMapper<User>() {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getString("id"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
return user;
}
};
⇒ UserDao 를 깔끔하고 간결하게 정리할 수 있게 되었다.
User 정보를 DB 에 넣거나 가져오거나 조작하는 방법에 대한 핵심적인 로직
만약 사용할 테이블과 필드 정보가 바뀌면 UserDao 의 거의 모든 코드가 함께 바뀐다.
⇒ 응집도가 높다.