MyBatis
<foreach>
Xuniverse
2017. 10. 17. 17:44
DAO
public int insert_Equipment(List<EquipmentVO> equipmentVOList) {
Map<String, List<EquipmentVO>> paramap = new HashMap<>();
paramap.put("equipmentVOList", equipmentVOList);
return sqlSession.insert("Equipment.insert_Equipment", paramap);
}
SQL
<insert id="insert_Equipment" parameterType="map">
INSERT INTO equipment (
equipment_idx,
equipment_info_section,
equipment_info,
unit
)
<foreach collection="equipmentVOList" item="equipment" open="VALUES" separator=",">
(
(SELECT idx FROM equipment WHERE groups_idx = #{equipment.equipment_idx}),
#{equipment.equipment_info_section},
#{equipment.equipment_info},
#{equipment.unit}
)
</foreach>
</insert>
주의.
foreach에서 사용할 List를 Map에 담지 않고 받은 그대로 넘기게 되면 foreach 구문 내에 collection에 리스트 명을 적어줘도 찾지 못함.
때문에 Mapper로 넘기기 전에 Map에 리스트를 담고, collection에는 Map의 Key값을 넣어서 찾아야 함.