ItemWriter Interface

DB 혹은 파일에 Write 처리를 위하여 ItemWriter Interface를 구현한다.

(1) ItemWriter 작성

ItemProcessor에서 전달 받은 데이터를 DB에 등록 한다.

public class MSmpDBToDBBtch implements ItemReader<MSmpDBToDBBtch01Io>
    , ItemProcessor<MSmpDBToDBBtch01Io, MSmpDBToDBBtch02Io>
    , ItemWriter<MSmpDBToDBBtch02Io>, ItemStream { // ItemWriter Interface 추가

    @Override
    public void write(List<? extends MSmpDBToDBBtch02Io> items) throws Exception {

        dsmpEmpTst = DefaultApplicationContext.getBean(dsmpEmpTst, DsmpEmpTst.class);

        /**
         * List로 전달된 Item를 Loop를 돌면서 DB에 Insert할 DTO를 List형태로 설정한다.
         */
        List<DSmpEmpTstInsert001In> dSmpEmpTmp100insert01Ins = new ArrayList<DSmpEmpTstInsert001In>();
        for(MSmpDBToDBBtch02Io mSmpDBToDBBtch02Io : items)
        {
            DSmpEmpTstInsert001In in = new DSmpEmpTstInsert001In();
            in.setEmpNo(mSmpDBToDBBtch02Io.getEmpNo());                // set [FW샘플 임직원번호]
            in.setEmpNm(mSmpDBToDBBtch02Io.getEmpNm());                // set [FW샘플 임직원명]
            in.setOccpNm(mSmpDBToDBBtch02Io.getOccpNm());              // set [FW샘플 직업명]
            in.setMngrEmpNo(mSmpDBToDBBtch02Io.getMngrEmpNo());        // set [FW샘플 관리자임직원번호]
            in.setHireDt(mSmpDBToDBBtch02Io.getHireDt());              // set [FW샘플 입사일자]
            in.setPayAmt(mSmpDBToDBBtch02Io.getPayAmt());              // set [FW샘플 급여금액]
            in.setDeptNo(mSmpDBToDBBtch02Io.getDeptNo());              // set [FW샘플 부서번호]
            dSmpEmpTmp100insert01Ins.add(in);
        }

        /**
         * insert 처리
         * - 참고 1 : Executor Type BATCH로 C/U/D 처리는 Commit 시점에 bulk로 쿼리가 수행이 된다.
         * - 참고 2 : Executor Type C/U/D 처리는 Commit 시점에 수행이 되기때문에 return 값은 임의의 음수 값이다.(의미없음)
         */
        dsmpEmpTst.insert01(dSmpEmpTmp100insert01Ins);
    }
SWLab Bankware Global
  • 전체
  • BXM
  • BXCM
  • BXCP
  • BXI
제품 선택 시 더 정확한 매뉴얼 가이드를 제공해드립니다.

Copyright© Bankwareglobal All Rights Reserved.