뭐 비슷한 짓을 한적이 있다.
근데 내용이 묘하게 다르니까 뭐
위에거는 컬럼명부터 쭊쭊 넣은거고
<insert id="as" parameterType="VO">
INSERT INTO equip_data (
service_id, device_id, ltid, sub_device_id , ctrlrate_ch01, ctrlrate_ch02, ctrlrate_ch03, ctrlrate_ch04
) VALUES (
#{serviceId}, #{deviceId}, #{ltid}, #{subDeviceId}
, #{ctrlrateCh01}, #{ctrlrateCh02}, #{ctrlrateCh03}, #{ctrlrateCh04}
)
</insert>
위와 같은 문장을 foreach로 바꾸겟다는 의지
원래 저 Rate들은 List에 담겨잇다.
그렇기에 아래와 같이 바꿔주면 된다.
<insert id="insertEquipData" parameterType="DataVO">
<![CDATA[
INSERT INTO equip_data (
service_id, device_id, ltid, sub_device_id
, ctrlrate_ch01, ctrlrate_ch02, ctrlrate_ch03, ctrlrate_ch04
) VALUES (
#{serviceId}, #{deviceId}, #{ltid}, #{subDeviceId},
]]><foreach collection="ctrlRateList" item="ctrlRateList" separator="," >
${ctrlRateList}
</foreach>
<![CDATA[
)]]>
</insert>
Collection 객체안의 List Map등의 변수
item = alias
separator = 구분자
index = 인덱스 << 안씀
open close 등의 설정도 가능하다
주의할 점은 내가 CDATA로 감쌋는데
CDATA로 감싸면 foreach가 인식이 안되드랑
'Develope > DataBase' 카테고리의 다른 글
[Oracle] 오라클의 공백문자와 null (0) | 2018.10.02 |
---|---|
[MyBatis] 동적 쿼리문 만들기 (List<Map<>> insert, foreach) (0) | 2018.05.18 |
[MySQL] 바이너리 로그 분석하여 쿼리 조회하기. (0) | 2017.12.14 |
[SQL] 쿼리 튜닝 : select 문 안에 서브쿼리 (2) | 2017.12.01 |
[Mybatis] result type이 HashMap일 때 Null 처리 (4) | 2017.11.14 |