![[SpringBatch 연재 07] MyBatisPagingItemReader로 DB내용을 읽고, MyBatisItemWriter로 DB에 쓰기](https://devocean.sk.com/thumnail/2024/10/15/769e978e524bb2bf4859b98bf774b70bfa7fbebf1c9329d0d3d4c927120be898.png)
백엔드
[SpringBatch 연재 07] MyBatisPagingItemReader로 DB내용을 읽고, MyBatisItemWriter로 DB에 쓰기
두줄요약
Spring Batch에서 MyBatisPagingItemReader와 MyBatisBatchItemWriter를 사용하는 방법을 정리했습니다. XML 매퍼 분리와 청크 단위 페이징 처리로 DB 읽기와 쓰기를 구성했습니다.
핵심 내용
- Spring Batch에서 MyBatisPagingItemReader로 DB를 페이징 단위로 읽고, MyBatisBatchItemWriter로 DB에 쓰는 구성
- SqlSessionFactory, queryId, pageSize, statementId, itemToParameterConverter 같은 주요 설정 요소
- XML mapper에 select/insert 쿼리를 분리하고 resultMap으로 엔티티 필드와 컬럼 매핑
- 청크 단위 처리에서 MyBatis의 직관적 쿼리 작성과 페이징 활용 방식 정리
적용해볼 점
- 대량 데이터를 chunk 기반으로 읽고 쓰는 배치 작업에 MyBatis 연동 적용
- 쿼리와 자바 코드를 분리해 유지보수성과 SQL 최적화 여지 확보
- 필요 시 Map 변환을 통해 writer 파라미터 형태를 유연하게 조정
