Mysql을 사용하는 경우에만 테스트 한 방법이지만, 여러 DBMS에서 사용가능할듯 합니다.
Mapper에서 ${} 를 이용하는 경우 넘겨준 변수가 그데로 SQL로 변환 되므로, 이러한 특징과
SQL 의 insert inot -table- VALUES 문을 이용하여 values 이하여 여러Row를 (...), (...), ...이러한 형식으로 넘겨 처리 합니다.
Mapper
insert into ${table} (${oneName}, ${twoName}) values ${batchData}
Java
public int addTwoColumns (String table, String oneName, String twoName, List codes) throws Exception {
Map data = new HashMap();
data.put("table", table);
data.put("oneName", oneName);
data.put("twoName", twoName);
String str = "";
for(Code c : codes) {
if(!str.equals("")) str += ",";
str += "('" +c.getId() + "','" + c.getName() + "')";
}
data.put("batchData", str);
return codeMapper.addTwoColumns(data);
}