MySQL2023. 3. 14. 09:14

백엔드 단에서 반복문 돌면서 insert 할수도 있지만..그방법은 비용면에서 비추고..

 

mybatis에서 지원하는 foreach 문을 활용..

 

VO를 던질수도있고 list 자체를 던질수도 있고 여러가지지만..

 

이번엔 HashMap을 List에 담고 돌려보기로 한다..

 

//JAVA
HashMap commandMap = new HashMap(); //파라미터로 넘길 맵
List<HashMap> defaultList = new ArrayList<HashMap>();

//리스트에 넣을 데이터들
HashMap map = new HashMap();
map.put("id", "deer1");
map.put("col1", "col1"); 
// ...
HashMap map2 = new HashMap();
map2.put("id", "deer2");
map2.put("col1", "col1");
// ...
defaultList.add(map);
defaultList.add(map2);

//파라미터에 담고
commandMap.put("defaultList", defaultList);

//mapper로 던진다
deerService.insertForEachTEST(commandMap);



//mapper xml
<insert id="insertDEER" parameterType="java.util.HashMap">
   INSERT INTO DBNAME.TABLENAME
       (id, col1, col2, col3)
   VALUES
       <foreach item="item" index="index" collection="defaultList" separator=",">
           (#{item.id}, #{item.col1}, #{item.col2}, #{item.col3})       
       </foreach>
</insert>

 

 

백단에서 for문 도는것보다 깔끔하고 커넥션을 한번에 열고 처리해서 좋을것..

 

 

Posted by 사슴영혼'-'