[MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE) - MySQL
Oracle 버전이 궁금하다면 ? 클릭 !
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>
'study > java' 카테고리의 다른 글
[MyBatis] 시퀀스 자동증가(NEXTVAL) 사용한 INSERT foreach 쿼리 (0) | 2023.07.12 |
---|---|
[MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE, UPDATE) - Oracle (0) | 2023.07.12 |
[MyBatis] SpringBoot MyBatis 쿼리 로그 설정하기 (0) | 2023.07.12 |
[MyBatis] 중복 쿼리 줄여주는 sql, include, property 태그 문법 살펴보기 (0) | 2023.07.12 |
javascript 페이징 (0) | 2023.07.05 |