SPRING/term

RowMapper

nang. 2019. 5. 13. 19:58
반응형
SMALL

* 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 객체에 할당 및 반환하는 코드를 작성해야 함

 

 

 

 

 

 

반응형
LIST

'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