* DB 연동 시 select문을 수행하는 경우 결과값이 단순하게 정수 값 하나거나 문자열 하나로 받는게 아니라 DTO 혹은 VO객체에 여러가지 값으로 가져와야 하는 경우가 있다.
이런 경우 DTO 혹은 VO 객체에 DB에서 select한 데이터가 어떻게 mapping 되어야 하는지(--> 그니까 파싱을 말하는 듯)에 대한 정의가 필요하다.
이 mapping과 관련된 설정을 위해서 제공되는 것이 RowMapper 인터페이스 이다.
public interface RowMapper<T> {
T mapRow(ResultSet rs, int romNum) throws SQLExcpetion;
}
* mapRow()
: ResultSet의 특정 행에 대해 T type 객체를 하나 생성 및 반환
* ResultSet
: DB에서 가져온 데이트 세트
* rs
: ResultSet 객체
* rowNum
: 현재 커서의 번호 (0부터 시작)
* 인터페이스라서 구현 클래스 필요
public class CategoryRowMapper implements RowMapper<Category> {
public Category mapRow(ResultSet rs, int rowNum) throws SQLException {
Category category = new Category(); // 일단 사용할 클래스 객체 생성
category.setCategoryId(rs.getString("CATID"));
category.setName(rs.getString("NAME"));
category.setDescription(rs.getString("DESCN"));
return category;
}
}
* 여기에는 ResultSet의 각 행(row)의 값을 적절한 domain 객체에 할당 및 반환하는 코드를 작성해야 함
'SPRING > term' 카테고리의 다른 글
DTO와 VO 차이 (0) | 2019.05.13 |
---|---|
UML (Unified Modeling Language) (0) | 2019.03.17 |
Bean, IoC, Container, Coupling (0) | 2019.03.16 |
Servlet, GET / POST (0) | 2019.03.16 |
MVC (Model-View-Controller) (0) | 2019.03.15 |