웹 개발/웹 개발
Mybatis 다중행 삽입
크리스피코드
2023. 1. 30. 15:55
Mybatis에서 다중행 삽입을 위해서 반복문인 foreach태그를 사용할 수 있다.
다중행을 Mybatis를 사용해 삽입하기 위해서는 <insert>가 아닌 <update>를 사용해야한다. parameterType은 데이터가 저장된 Collection 클래스를 입력한다.
주의해야할 점은 #{변수명}을 작성할 때 반드시 #{item이름.변수명}으로 작성해야한다.
<update id="createPostAttach" parameterType="java.util.List">
<selectKey resultType="int" order="BEFORE" keyProperty="seq">
SELECT NVL(MAX(SEQ), 0) + 1
FROM ATTACH
</selectKey>
<foreach collection="list" item="attachVO"
open="INSERT ALL" close="SELECT * FROM DUAL" separator=" " index="idx">
INTO ATTACH (SEQ
,FILENAME
,FILESIZE
,THUMBNAIL
,REGDATE
,ETP_ID)
VALUES (#{idx} + #{seq}
,#{attachVO.filename}
,#{attachVO.filesize}
,#{attachVO.thumbnail}
,SYSDATE
,#{attachVO.etpId})
</foreach>
</update>
* <foreach>의 속성
collection | 반복문을 사용할 Collection 클래스를 설정한다. |
item | Collection의 요소값에 해당하는 VO 클래스를 설정한다. |
open | 반복문 시작 전 앞에 붙는 접두사를 설정한다. |
close | 반복문 끝 이후 뒤에 붙는 접미사를 설정한다. |
separator | 반복문 사이의 구분자를 설정한다. |
index | 인덱스의 변수명을 설정한다. |