iBatis RowHandler
- 개발팀 남한희 대리
1. iBatis RowHandler 란..
A. 용량 또는 레코드 수가 많은 레코드셋을 처리할수 있는 방법
B. 레코드를 한번에 다 가져오지 않고 레코드 하나하나씩을 핸들러에서 처리하는 방식
C. iBatis 특성상 Recordset 을 모두 List 에 저장해야 되는 단점을 극복할수 있는 방법
D. List 에 전부 저장하지 않고 바로바로 처리 하여 메모리를 절약할수 있고 실행 속도 또한 절약 할 수 있다.
2. 핸들러 만들기
A. 핸들러 클래스는 com.ibatis.sqlmap.client.event.RowHandler 를 구현해야 한다.
B. RowHandler 인터페이스의 void handleRow (Object valueObject) 를 구현한다.
C. handleRow 에 넘어오는 valueObject 는 ResultMap 에 해당하는 Class 가 리턴한다.
해당 클래스로 캐스팅하여 데이터를 처리한다.
D. 핸들러 클래스는 생성을 하여 iBatis 에 넘기는 구조이기 때문에 다른 여러 부가적인 처리가 가능하다.
3. 핸들러 호출
A. 핸들러 클래스를 생성한 다음 sqlMapClient 함수중 queryWithRowHandler 를 호출한다.
B. queryWithRowHandler ([Select ID], [Parameter Data], [RowHandler Interface]);
C. 로우 핸들러는 당연히 Select ID 에만 매칭이 된다.
D. queryWithRowHandler ("res.getsResource", sData, rowHandler);
4. 스프링에서의 호출
A. 스프링의 getSqlMapClientTemplete () 에는 해당 함수가 없다.
B. 그러기에 getSqlMapClient () 를 호출하여 직접 sqlMapClient 에 접근하여 호출한다.
'Java > iBatis' 카테고리의 다른 글
iBatis resultMap 의 select 중 column 을 여러 컬럼을 주고 싶을 때... (0) | 2012.06.13 |
---|---|
iBatis Cache 모델 (0) | 2012.04.18 |
iBatis ResultMap 상속 (0) | 2012.04.18 |