이 키워드로 들어오는 분들이 많아서 추가글 링크도 남긴다.
foreach 처음 사용해봣을때의 글이니 어색하다..
추가작업내용 :
[MyBatis] 동적 쿼리문 만들기 (List<Map<>> insert, foreach)
https://vivi-world.tistory.com/50
[MyBatis] 객체 (VO, DTO) 안의 리스트를 사용해서 인서트 작업하기
https://vivi-world.tistory.com/40
* 결론
<insert id="insertResultAll" parameterType="java.util.List">
INSERT INTO collect_data_result (
collect_date, collect_time, table_name, target_table, building_id
, flag, type, execute_time, count, remark
)
VALUES
<foreach collection="list" item="item" separator=" , " >
("${item.collect_date}", "${item.collect_time}", "${item.table_name}", "${item.target_table}", "${item.building_id}"
, "${item.flag}", "${item.type}", "${item.execute_time}", "${item.count}", "${item.remark}")
</foreach>
</insert>
그런 느낌이군
for (Object item : List){
(values)
}
글쓰기 귀찮당
예전 블로그 발췌
--------------------------------------------------
마이바티스의 배치는
for (int i = 0; i < logList.size(); i++) {
id = session.insert("SqlMap.insert", logList.get(i));
if (i % 10000 == 0) {
session.commit();
System.out.println((i / 10000) + " batch finish");
}
}
이딴식으로 하면 소용이 없다고 한다.
for (int i = 0; i < logList.size() / 10000; i++) {
id = session.insert("SqlMap.insertAll", logList.subList(i * 10000, (i + 1) * 10000));
session.commit();
System.out.println((i / 10000) + " batch finish");
}
일단 요딴식으로 바꿔주긴 햇는데
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '__frch_item_0' not found.
이러한 에러가 난ㄴ다
http://m.it610.com/article/1618936.htm
<insert id="insertAll" parameterType="java.util.List">
INSERT INTO log (date, server, command, message, diff_time) VALUES
<foreach collection="list" item="item" separator=" , " >
(${item.date}, ${item.server}, ${item.command},
${item.message}, ${item.diff_time})
</foreach>
</insert>
<insert id="insertAll" parameterType="java.util.List">
INSERT INTO log (date, server, command, message, diff_time, close_time) VALUES
<foreach collection="list" item="item" separator=" , " >
("${item.date}", "${item.server}", "${item.command}",
"${item.message}", ${item.diff_time}, "${item.close_time}")
</foreach>
</insert>
'Develope > DataBase' 카테고리의 다른 글
[SQL] 쿼리 튜닝 : select 문 안에 서브쿼리 (2) | 2017.12.01 |
---|---|
[Mybatis] result type이 HashMap일 때 Null 처리 (4) | 2017.11.14 |
[Mysql] index 강제로 태우기 (4) | 2017.11.03 |
[Mysql] Select할 때 String 을 Date로 표현하기, 포맷 변환 (2) | 2017.11.02 |
[MYSQL] character set UTF8, 서버 클라이언트 모두 수정 (1) | 2017.10.31 |