스프링은 JDBC를 이용하는 DAO에서 사용할 수 있도록 준비된 다양한 템플릿과 콜백을 제공합니다. 거의 모든 종류의 JDBC코드에 사용 가능한 템플릿과 콜백을 제공할 뿐만 아니라, 자주 사용되는 패턴을 가진 콜백은 다시 템플릿에 결합시켜서 간단한 메소드(update(), query(), queryForObject()) 호출만으로 사용이 가능하도록 만들어져 있기 때문에 템플릿/콜백 방식의 기술을 사용하고 있는지도 모르고도 쓸 수 있을 정도로 편리합니다. 스프링이 제공하는 JDBC 코드용 기본 템플릿이 바로 JdbcTemplate입니다.
update()
update는 다양한 형태를 제공하지만 기본적으로 SQL 구문과 '?' 치환자를 대체할 수 있는 가변인자들을 파라미터로 받아 사용하는 메서드입니다.
//예시1
public void sample1(query) {
jdbcTemplate.update(query);
}
//에시2
public void sample2(Sample sample) {
jdbcTemplate.update(
"UPDATE sample SET first=?,second=?",
sample.getFirst(),
sample.getSecond(),
);
}
query()
query는 SQL 구문과 '?' 치환자를 대체할 수 있는 가변인자, RowMapper를 파라미터로 전달 받습니다. 반환값은 List 형태이며, 결과의 수가 0이어도 Exception이 발생하지 않고 Query가 실패할 경우만 DatAccessException을 발생시킵니다.
qureyForObject()
매개변수로 SQL 구문과 RowMapper를 받습니다. 반환값은 단일 객체로 반환이 되며 결과 행 수가 0이면 EmptyResultDataAccessException을 반환, 1을 초과할 경우 IncorrectResultSizeDataAccessException을 반환합니다. 이 Exception은 DataAccessException을 상속받고 있습니다.
출처
- 토비의 스프링 3.1
- NewWisdom's Github
728x90
반응형
'Domain > Spring' 카테고리의 다른 글
[Spring] DTO vs VO vs Entity (0) | 2021.08.31 |
---|---|
[Spring] JDBC와 Transaction (0) | 2021.08.18 |
[Spring] Bean ( Spring Bean ) (0) | 2021.07.23 |
[Spring] 템플릿-콜백 (0) | 2021.07.23 |
[Spring] 관점 지향 프로그래밍 (AOP / Aspect Oriented Programming) (0) | 2021.07.14 |
댓글