List mulList = new ArrayList();

for (int i = 0; i < list.size(); i++) {

  	TestDto dto = objectMapper.convertValue(list.get(i), TestDto.class); 
  	mulList.add(dto);
  	if (i % 1000 == 0 || list.size() - 1 == i) { // 1000건씩 insert
          Map<String, Object> map = new HashMap<String, Object>();
          map.put("list", mulList);
          idxcin023cMapper.insertListMatUplByPk(map);
          mulList.clear();
	}

}
<update id="insertListMatUplByPk" parameterType="java.util.Map">
        <selectKey resultType="Integer" keyProperty="matUplId" order="BEFORE">
            SELECT NVL(MAX(MAT_UPL_ID),0) + 1 AS MAT_UPL_ID
              FROM TEST_TABLE
        </selectKey>
            
            INSERT ALL 
        <foreach collection="list" item="item" index="index" separator=" ">    
	        	        
	          INTO TEST_TABLE (
	               MAT_UPL_ID
	             , BASE_YMD   
	             , INV_NO     
	             , ORD_NO     
	             , BRSH_CD    
	             , MAT_TYP_CD 
	             , RSP_EMPNO  
	             <include refid="com.lottegl.alps.business.persistence.CmmMapper.insertColumn" />
	             )      
	        VALUES (
	               TO_NUMBER(#{matUplId}) + TO_NUMBER(#{index})
	             , #{item.baseYmd}
	             , #{item.invNo}
	             , #{item.ordNo}
	             , #{item.brshCd}
	             , #{item.matTypCd}
	             , #{item.rspEmpno}
	             <include refid="com.lottegl.alps.business.persistence.CmmMapper.insertColumnParam" />
	             )
	            
        </foreach>
        SELECT * FROM DUAL
    </update>
블로그 이미지

Hugo_M

초보개발자의 공간

,