본문 바로가기

MyBatis&JPA

[MyBatis] foreach문을 사용하여 배열을 insert 하기

ArrayList<T> 타입의 배열 파라미터를 insert 할 경우,

 

<insert id="insertData" parameterType="hashMap">
    INSERT INTO DATA(NO, A, B, C) VALUES
    <foreach collection="list" item="item" index="index" separator=", ">
        (#{index}, #{item.A}, #{item.B}, #{item.C})
    </foreach>
</insert>

 

위와 같이 반복구문이 필요한 부분에 foreach문을 작성해준다.

 

collection : 전달받은 인자. List 혹은 Array 만 가능
item : 전달받은 인자 값의 alias
open : 구문이 시작될때 삽입할 문자열
close : 구문이 종료될때 삽입할 문자열
separator : 반복 되는 구문 사이에 출력할 문자열
index : 0부터 순차적으로 증가

 

예시는 mysql 쿼리이며 다중 insert를 아래 형태로 실행할 수 있다.

 

INSERT INTO 테이블명 (컬럼1, 컬럼2)
VALUES 
('값1','값2'),
('값1','값2'),
('값1','값2');