Back-end/etc..

[MyBatis] foreach 사용해서 List<Map<>> INSERT하기

EllaCoo 2022. 2. 11. 10:02

 

[{gubunEn=Total, gubun=합계}, {gubunEn=Seoul, gubun=서울}, {gubunEn=Busan, gubun=부산}, {gubunEn=Daegu, gubun=대구}]

위와 같은 List<map<>> 형태의 데이터를 MAPPER에서 INSERT 하는 방법을 foreach를 사용해서 구현해본다.



VO클래스
: 데이터베이스 안에 있는 테이블의 컬럼과 같은 값을 갖는 자바빈 클래스


MyBatis foreach문 지원 태그

- collection : 전달받은 인자. List or Array 형태만 가능
- item : 전달받은 인자 값을 alias 명으로 대체

- open : 구문이 시작될때 삽입할 문자열
- close : 구문이 종료될때 삽입할 문자열
- separator : 반복 되는 사이에 출력할 문자열
- index : 반복되는 구문 번호이다. 0부터 순차적으로 증가
  <foreach item="item" index="index" collection="list">
  INSERT INTO p
    (
     a
    , b
    )
    VALUES
    (
    #{item.gubunEn}
    , #{item.gubun}
    );
    </foreach>
VALUES 안에 <foreach> 문이 들어가면 안됨

MyBatis에서 사용되는 <foreach>는 VALUES 영역이 아닌, 전체적으로 반복되는 부분에만 적용!