批量编辑更新updateBatchById 和in那个更快
分类: Java springboot 专栏: java springboot 标签: updateBatchById和in那个更快
2023-12-02 12:58:15 804浏览
需要批量更新上架状态.
思路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)展开评论
暂无评论,快来写一下吧
展开评论
他的专栏
他感兴趣的技术



java
vue
springboot
Mysql
ssm
小程序
uniapp
js和jquery