ItemWriter Interface
Implement the ItemWriter Interface to perform write processing to a DB or file.
(1) Creating an ItemWriter
Register the data received from ItemProcessor in the DB.
public class MSmpDBToDBBtch implements ItemReader<MSmpDBToDBBtch01Dto>
, ItemProcessor<MSmpDBToDBBtch01Dto, MSmpDBToDBBtch02Dto>
, ItemWriter<MSmpDBToDBBtch02Dto>, ItemStream { // Added ItemWriter Interface
@Override
public void write(List<? extends MSmpDBToDBBtch02Dto> in) throws Exception
{
if(dSmpEmpTmp001 == null)
{
dSmpEmpTmp001 = DefaultApplicationContext.getBean(DSmpEmpTmp001.class);
}
/**
* While looping through the Items delivered as a List,
* set the DTOs to be inserted into the DB in a List format.
*/
List<DSmpEmpTmp001insert01InDto> dSmpEmpTmp100insert01InDtos = new ArrayList<DSmpEmpTmp001insert01InDto>();
for(MSmpDBToDBBtch02Dto mSmpDBToDBBtch02Dto : in)
{
DSmpEmpTmp001insert01InDto inDto = new DSmpEmpTmp100insert01InDto();
inDto.setFeduEmpNo(mSmpDBToDBBtch02Dto.getFeduEmpNo()); // set [FW sample employee number]
inDto.setFeduEmpNm(mSmpDBToDBBtch02Dto.getFeduEmpNm()); // set [FW sample employee name]
inDto.setFeduOccpNm(mSmpDBToDBBtch02Dto.getFeduOccpNm()); // set [FW sample occupation name]
inDto.setFeduMngrEmpNo(mSmpDBToDBBtch02Dto.getFeduMngrEmpNo()); // set [FW sample manager employee number]
inDto.setFeduHireDt(mSmpDBToDBBtch02Dto.getFeduHireDt()); // set [FW sample hire date]
inDto.setFeduPayAmt(mSmpDBToDBBtch02Dto.getFeduPayAmt()); // set [FW sample salary amount]
inDto.setFeduDeptNo(mSmpDBToDBBtch02Dto.getFeduDeptNo()); // set [FW sample department number]
dSmpEmpTmp100insert01InDtos.add(inDto);
}
/**
* insert processing
* - Note 1: For C/U/D processing with CONNECTED_BATCH, queries are executed in bulk at the commit point.
* - Note 2: For C/U/D processing with CONNECTED_BATCH, since it is executed at the commit point,
* the return value is an arbitrary negative value (no meaning).
*/
dSmpEmpTmp001.insert02(dSmpEmpTmp100insert01InDtos);
}