iBatis RowHandler

Java/iBatis 2012. 4. 18. 11:34 Posted by 퓨어레드

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