首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >避免循环操作数据库

避免循环操作数据库

作者头像
阿超
发布于 2022-08-16 15:52:54
发布于 2022-08-16 15:52:54
8870
举报
文章被收录于专栏:快乐阿超快乐阿超

今天看到公司实习写的代码。。。

代码语言:javascript
复制
for (Long id : ids) {
            //查询
            TbGoods tbGoods = goodsMapper.selectByPrimaryKey(id);
            tbGoods.setIsDelete("1"); //逻辑删除
    		//修改
            goodsMapper.updateByPrimaryKey(tbGoods);
        }

这是,循环操作数据库?!

晕。。。希望以后不再看到这样的代码。。。

我给他写了个mapper.xml里的sql,用 where id in()替代,这样只有一条sql语句了

代码语言:javascript
复制
<!-- 根据主键查询数据 -->
    <select id="selectByPrimaryKeys" resultMap="BaseResultMap" parameterType="list">
        SELECT
        <include refid="Base_Column_List"/>		//查询结果
        FROM tb_goods
    	WHERE id
    	IN
        <foreach collection="list" index="index" item="id" open="(" separator="," close=")">
            #{id}
        </foreach>
    </select>

大家一定要注意千万不要循环调用数据库。。。

可以拼成一条长sql一次请求

批量操作也尽量拼接成多条sql然后一次请求

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档