Java代码自动生成Mysql批量修改

关于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和数据的顺序必须是相同的,保证有序且一一对应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值