본문 바로가기

dev/스프링

myBatis ResultHandler

myBatis에서 데이터를 10만 건 이상 조회해서 List에 담게 되면 OOM 에러가 발생합니다.

 

따라서 이런 문제점을 해결하기 위해서는 myBatis의 ResultHandler를 사용하면 됩니다.

 

예제 코드

 

코드를 설명드리자면 먼저 myBatis로부터 DB 세션을 얻습니다.(774~778라인)

 

그리고 세션을 통해 조회 쿼리를 실행하고(781라인)

 

쿼리 결과를 한 번에 조회하는 게 아니라 로우 1개씩 처리합니다.(782~808라인)

 

예제 코드에 민감한 부분이 있어서 검은색으로 가렸지만

 

코드 이해하는 데는 문제없을 것으로 생각됩니다.