Batch Update
DBIO의 Executor 유형에 "CONNECTED_BATCH"가 지정되면 입력, 수정, 삭제와 같은 데이터 처리시에 DBIO는 건 별로 Statement의 addBatch를 호출하고 구간별 커밋이 발생할 때 executeBatch를 호출하여 일괄 처리한다. 이러한 사용방법은 대량 데이터를 처리하는 배치 어플리케이션 실행환경에 적합한 처리 성능을 제공한다.
-
DBIO Executor 유형 (Batch Fetch와 동일)
-
ItemWriter에서 DBIO 사용
@BxmBean("MMdpCustMng03")
@BxmCategory(logicalName = "샘플고객처리배치모듈03")
public class MMdpCustMng03 implements ItemWriter<MMdpCustMng03Dto> {
final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private DTblEduCustomer001 dTblEduCustomer001;
@Override
public void write(List<? extends MMdpCustMng03Dto> input) throws Exception {
List<DEduCustomer001Insert01InDto> customers = new ArrayList<DEduCustomer001Insert01InDto>();
for(MMdpCustMng03OutDto mMdpCustMng01OutDto : input)
{
DEduCustomer001Insert01InDto customer = new DEduCustomer001Insert01InDto();
customer.setCustId(mMdpCustMng01OutDto.getCustId());// set [고객ID]
customers.add(customer);
}
dTblEduCustomer001.inser01(customers); // (1)
}
(1) "CONNECTED_BATCH" Executor DBIO는 List로 데이터를 전달받을 수 있으며, 전달받은 데이터는 커밋 시 쿼리가 수행이 되어 처리가 된다. "Batch Update"를 이용하면 커밋 시 쿼리가 수행이 되기 때문에 DBIO를 호출하는 시점에는 오류가 발생하지 않는다.