关于MySQL批量插入工具类
关于很多老项目要用到jdbc进行批量更新的情况写了一个工具类
public static StringBuilder test(List<Integer> ids,List<String> datas){
StringBuilder sql1 = new StringBuilder("UPDATE article SET recommendArticle=(CASE id ");
StringBuilder sql2 = new StringBuilder("");
for (int i=0;i<ids.size();i++) {
sql2.append("WHEN "+ids.get(i)+" THEN "+datas.get(i)+" ");
}
sql2.append("ELSE recommendArticle END),");
sql2.append("recommendAsk = (CASE id ");
for (int i=0;i<ids.size();i++) {
sql2.append("WHEN "+ids.get(i)+" THEN "+datas.get(i)+" ");
}
sql2.append("ELSE recommendAsk END)");
String s = ids.toString();
String idsStr = s.substring(1, s.length()-1);
sql2.append("WHERE id in("+idsStr+")");
sql1.append(sql2);
return sql1;
}
注意事项
1.第一个List集合是要修改的记录的id,第二个List是要修改的记录的数据,我这里的使用场景是要修改的两个字段的记录值都是相同的,所以一个数据填充到两列,当然如果你要修改的每列的数据不相同,根据需求加形参列表即可。注意点:要修改的记录id和数据的顺序必须是相同的,保证有序且一一对应。