본문 바로가기

study/java

[MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE) - MySQL

[MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE) - MySQL

 

 

Oracle 버전이 궁금하다면 ? 클릭 !

 

[MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE)

[MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE) foreach문은 사용할 때마다 사용되는 위치도 속성도 어려워서 더이상 헷갈리지 않기 위해 남겨본다 :-) ! foreach문의 속성은 다음과 같다......

haenny.tistory.com

 

 

 

foreach문의 속성은 다음과 같다.

 

구분 설명
collection 전달받은 인자값
item 전달받은 인자값을 다른이름으로 대체
open 해당 구문이 시작할 때
close 해당 구문이 끝날 때
index 항목의 인덱스 값을 꺼낼 때 사용할 변수 이름을 지정
separator 구분자. 한번 이상 반복할 때 반복되는 사이에 해당 문을 넣어줌

 

 

 

 

다음 예제의 파라미터로 활용되는 VO 객체이다.

 

 

public class TestVO {
    private String idx;
    private String timestampAccident;
    private String vin;
    private String dataGb;
    
    @Override
    public String toString() {
        return "TestVO [idx=" + idx + ", timestampAccident=" + timestampAccident 
 + ", vin=" + vin + ", dataGb=" + dataGb + "]";
    }
    public void setIdx(String idx) {
        this.idx = idx;
    }
    public void setTimestampAccident(String timestampAccident) {
        this.timestampAccident = timestampAccident;
    }
    public void setVin(String vin) {
        this.vin = vin;
    }
    public void setDataGb(String dataGb) {
        this.dataGb = dataGb;
    }
}

 

 

 

 

INSERT 문

 

 

<insert id="insCompareResult" parameterType="java.util.List" >
    INSERT INTO KTF_COMPARE_RESULT(
          IDX
        , TIMESTAMP_ACCIDENT
        , VIN
        , DATA_GB
    ) VALUES 
    <foreach collection="list" item="item" separator=",">
    (
          #{item.idx}
        , #{item.timestampAccident}
        , #{item.vin}
        , #{item.dataGb}
    )
    </foreach>
</insert>

 

 

 

 

DELETE 문

 

 

- 파라메터가 리스트인 경우

 

<delete id="delCompareResult" parameterType="java.util.List"> 
	DELETE FROM KTF_COMPARE_RESULT 
	<where> 
		<foreach collection="list" item="item" open="" close="" separator="OR"> 
		(IDX = #{item.idx} AND VIN = #{item.vin}) 
		</foreach> 
	</where> 
</delete>

 

 

- 파라메터가 배열인 경우

 

<delete id="delCompareResult" parameterType="java.util.Arrays"> 
	DELETE FROM KTF_COMPARE_RESULT 
	<where> 
		TIMESTAMP_ACCIDENT IN
		<foreach collection="array" item="item" index="index" separator="," open="(" close=")"> 
			#{item}
		</foreach> 
	</where> 
</delete>

 

 

https://haenny.tistory.com/182 에서 퍼옴