본문 바로가기
JAVA

대용량 검색 방법 Mybatis ResultHander

by 아이티.파머 2015. 1. 29.
반응형

페이지를 한번에 많은 내용을 검색해 와야 한다.

그냥 selectList 로 불러와 버리면 당연히 VM 에서 Out Of Memory가 발생된다.

게시판 형태라면야  row number을 이용하거나 다른 방법을 이용 해서 페이징 기법을 사용 하면 되는데


대용량의 데이터를  DB로 부터  읽어와서 처리를 해야 한다면 어떻게 해야 할까?

mybatis 를 사용 하면 resultHander를 상속받아 사용 할 수 있다.

( https://code.google.com/p/mybatis/wiki/ResultHandlerExample )


핸들러를 사용하면 데이터를 한건씩 읽어와  데이터를 처리 할 수 있다. 

SfAbstractReportCommonDao.java

ResultHandler 파라미터는 레코드별로 다룰수 있도록 해준다. List 에 추가할수도 있고, Map, Set 을 만들수도 있으며, 각각의 결과를 그냥 던질수도 있다. ResultHandler 로 많은 것을 할 수 있고 MyBatis 는 결과셋을 다루기 위해 내부적으로 사용한다.


인터페이스는 매우 간단하다.



한가지 방법이 더 있는데, 이건 페이징 처리를 하듯이 101건씩 혹은 1001한건씩 데이터를 가져와서 

처리를 하는 방법 이다.

SfAbstractReportCommonDao.java

SfReportDao.xml




반응형

'JAVA' 카테고리의 다른 글

기본공부  (0) 2015.12.01
java proxy , reflect  (0) 2015.04.20
JAVA custom listener  (0) 2015.01.15
search Engine - sphinx  (0) 2013.05.21
Apache HttpClient - Rest call Client  (0) 2013.05.03