Spring과 Mybatis가 더 나은 선택으로 보이지만, 어쨌든 jdbcTemplate도 사용하기 나쁘지않다.
queryForObject(String sql, Class type, Object args...)
얘가 해주는 일은 참 많다
Connection획득,
PrepareStatement생성,
PrepareStatement값 바인딩
ResultSet 처리
Exception처리
하지만 유의해야할점이 있는데
이거는 반드시 하나 있는 메소드에 쓰임. 값이 하나 안오면 exception이 발생함
걍 resultsetextractor인터페이스를 구현할걸 넘기거나
query로 가는게 낫다고한다
package com.gorakgarak.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper;
import com.gorakgarak.entity.Director;
public class DirectorDAOImpl implements DirectorDAO {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; }
@Override public void insert(Director director) { jdbcTemplate.update(MappedSQL.INSERT_DIRECTOR, director.getId(), director.getName(), director.getAge(),director.getWinnerCount());
}
public int selectDirectorAgeById(String id) { return jdbcTemplate.queryForObject(MappedSQL.SELECT_DIRECTOR_BY_AGE, Integer.class, id); }
@Override public Director selectDirectorById(String id) {
//T queryForObject(,RowMapper<T>,) return jdbcTemplate.queryForObject(MappedSQL.SELECT_DIRECTOR_BY_ID,newDirectorMapper(),id);
}
@Override public List<Director> selectDirectorList() { return jdbcTemplate.query(MappedSQL.SELECT_DIRECTOR, new DirectorMapper()); }
@Override public void deleteDirector(String id) { jdbcTemplate.update(MappedSQL.DELETE_DIRECTOR,id);
}
@Override public void updateDirector(Director director) { jdbcTemplate.update(MappedSQL.UPDTAE_DIRECTOR,director.getAge(),director.getWinnerCount(),director.getId()); }
private class DirectorMapper implements RowMapper<Director>{
@Override public Director mapRow(ResultSet rs, int rowNum) throws SQLException { //if나 for처리안함! return newDirector(rs.getString("director_id"),rs.getString("director_name"), rs.getInt("director_age"),rs.getInt("director_winnercount"));
}
}
} |
'웹 & 프레임워크' 카테고리의 다른 글
annotation기반 redirect와 session 설정법 (0) | 2014.05.25 |
---|---|
Spring을 이용하면 객체자체 VO를 값으로 보내버릴수있다! (0) | 2014.05.25 |
jQuery로 마우스반응 (hover)기능 구현하기 예제 (0) | 2014.05.22 |
html 에러코드들 (0) | 2014.05.16 |
jQuery 기본 (0) | 2014.05.14 |