关于在for循环中执行sql语句效率的问题。

xieyunchao xieyunchao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我们在项目中要用到批量删除的功能 ,我在项目中是这样写的:

String[] strArrayCheckIds = request.getParameterValues("checkid");

int iLength=strArrayCheckIds.length;

for(int i=0;i<iLength;i++){

//在这里我用执行了sql语句:delete from tablename where in=...的删除操作。

carService.delete(strArrayCheckIds[i]);
}

从以上可以看出,我的sql操作上放到for循环中的,也就是说如果我删除5条数据,那么,会连续执行5条sql的删除操作。


但是项目经理不让我那样写,说会影响效率,他让我用delete from tablename in(...)的方式来做。
以下是代码:

String petroId="0";
String[] strArrayCheckIds = request.getParameterValues("checkid");

int iLength=strArrayCheckIds.length;

for (int i = 0; i < iLength; i++){
petroId=petroId+","+strArrayCheckIds[i];
}
carPetroService.deleteByIds(petroId); //这里用delete from tablename where id in (....)的语法
return doList();

但是这种方法循环处理字符串,而用dele from tablname where id in(...)的语法来做的。但是这种sql的效率低啊。

哪种方法更好呢。效率上能差多少呢?
请高手指教!







...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
xieyunchao
认证与考试 2,667 成员 1,504 内容