批量编辑更新updateBatchById 和in那个更快
分类: Java springboot 专栏: java springboot 标签: updateBatchById和in那个更快
2023-12-02 12:58:15 432浏览
需要批量更新上架状态.
思路1:使用updateBatchById(执行时间848ms)
思路2:使用in修改(执行时间73ms)
先说结果:in更快相率更高
需要批量更新上架状态.
思路1:使用updateBatchById(执行时间848ms)
思路2:使用in修改(执行时间73ms)
先说结果:in更快相率更高
查看执行sql:
代码:
if(editli!=null&&editli.size()>0){
System.out.println("--------------------两种批量编辑的方法,那个快,区别--------------------");
long ts1=System.currentTimeMillis();
scqtService.updateBatchById(editli);
long ts2=System.currentTimeMillis();
scqtService.updateQtscStatusByIds(qtscStatus,idli);
long ts3=System.currentTimeMillis();
System.out.println(ts2-ts1);//结果848
System.out.println(ts3-ts2);//73
}
editli时这样赋值的 JfSchoolQtype ss=new JfSchoolQtype(); ss.setQtscStatus(qtscStatus); ss.setId(id); editli.add(ss);
//自己封装的in更新方法 public void updateQtscStatusByIds(String qtscStatus,List<Integer> idli){ if(idli==null||idli.size()==0) return ; LambdaQueryWrapper<JfSchoolQtype> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.in(JfSchoolQtype::getId,idli); JfSchoolQtype s=new JfSchoolQtype(); s.setQtscStatus(qtscStatus); qtscMapper.update(s,lambdaQueryWrapper); }
个人拙见:如果更新的字段一致使用in
如果不一致使用updateBatch
测试数据多的也一样结果
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
暂无评论,快来写一下吧
展开评论
他的专栏
他感兴趣的技术