반응형
Mybatis에서 foreach를 사용해서 List를 Insert하는 방법
아래와 같이 리스트에 데이터를 담아서 넘기는 경우
List<TestVO> list = new ArrayList<>();
list.add(new TestVO(1));
list.add(new TestVO(2));
insert("namespace.listInsert", list);
Oracle 기준으로는 mybatis 쿼리를 아래와 같이 작성한다.
<insert id="listInsert" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" separator=" " open="INSERT ALL" close="SELECT * FROM DUAL">
INTO MY_TABLE
(
NUM,
DATE
)
VALUES
(
#{item.num},
SYSDATE
)
</foreach>
</insert>
실행 쿼리는 아래와 같이 실행된다
INSERT ALL
INTO MY_TABLE (NUM, DATE) VALUES (...)
INTO MY_TABLE (NUM, DATE) VALUES (...)
...
SELECT * FROM SYS.DUAL
MySQL DB같은 경우는 아래와 같이 작성한다
<insert id="listInsert" parameterType="java.util.List">
INSERT INTO MY_TABLE
(
NUM,
DATE
)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.num},
SYSDATE
)
</foreach>
</insert>
반응형
'개발 > 기타' 카테고리의 다른 글
Postman Cookie 설정 방법 (0) | 2022.03.04 |
---|---|
DevOps란 (0) | 2022.03.01 |
Maven Build 옵션(pl, am, amd) - 멀티모듈에서 특정 모듈만 빌드 (0) | 2022.02.18 |
Java List removeIf(), 안전한 List 루프 Item Remove (0) | 2022.02.15 |
jQuery 동적추가(append, html) Click 이벤트 처리 (0) | 2022.02.11 |
댓글