on
[Mybatis] ParameterType List, Map 처리 (feat. foreach구문)
[Mybatis] ParameterType List, Map 처리 (feat. foreach구문)
Rest API에서 8만개가 넘는 데이터를 DB에 넣어줄 일이 생겼다.
컨트롤러에서 insert를 for문으로 돌려보니 매우 비효율적이었고,
생각해보니 mapper에 파라미터를 list로 가져가면 되지않을까 하는 생각이 들어 찾아보니 역시 방법이 있었다..
Mapper 파라미터가 List일 경우
INSERT INTO T_BOARD ( TITLE , CONTENTS , DISPLAY_YN , EMAIL , REG_ID , REG_DATE ) VALUES ( #{item.title} , #{item.contents} , #{item.displayYn} , #{item.email} , #{item.regId} , NOW() )
Mapper 파라미터가 Map일 경우
@Override public void insertEventGoodsMng(Map dbParams) { // dbParams={eventIdx=113, cate=24, ...} List> goodsList = boardMapper.selectGoodsList(dbParams); dbParams.put("goodsList", goodsList); eventMapper.insertEventGoodsMng(dbParams); }
INSERT INTO EVENT_GOODS_MNG ( EVENT_GOODS_MNG_IDX , GOODS_IDX ) VALUES ( #{eventIdx} , #{item.goodsIdx} )
출처
https://linked2ev.github.io/mybatis/2020/01/05/MyBatis-5-foreach-%EA%B5%AC%EB%AC%B8,-parameterType-List-Model-Map/
from http://matseventwelve.tistory.com/41 by ccl(A) rewrite - 2021-11-26 11:01:51