프로그래밍/스프링 & 스프링 부트
스프링 MyBatis foreach 여러개 다중 insert (list insert)
밍구몬
2019. 6. 21. 17:42
오라클 LIST INSERT
<insert id="insertAttach" parameterType="memberVO">
<foreach item="item" index="index" collection="java.util.List" separator=" " open="INSERT ALL " close="SELECT * FROM DUAL">
INTO attachments(id,passwd,name)
VALUES (#{item.id},#{item.passwd},#{item.name})
</foreach>
</insert>
오라클에서 foreach를 이용해 list값을 db에 집어 넣는 방법이다.
separator : 반복 문자열을 구분할 문자
item : 리스트 i번째의 값이다. item.변수명 으로 사용한다.
collection : 타입
open : foreach 문이 시작되기 전 추가될 문자
close : foreach 문이 끝날 때 추가될 문자
오라클의 경우 INSERT ALL을 통하여 여러개의 값을 집어 넣을 수 있다.
Mysql, MariaDB List INSERT
<insert id="insertWeather" parameterType="java.util.List">
INSERT INTO weather_info
VALUES
<foreach item="item" index="index" collection="java.util.List" separator=" , ">
(#{item.dateSeq},#{item.fcstDate},#{item.fcstTime},#{item.temperature})
</foreach>
</insert>
mariadb나 mysql은 VALUES 뒤에 괄호로 묶어 컴마(',')로 구분해주면 된다.