51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

避免循环操作数据库

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

|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 | hljs java for (Long id : ids) { //查询 TbGoods tbGoods = goodsMapper.selectByPrimaryKey(id); tbGoods.setIsDelete("1"); //逻辑删除 //修改 goodsMapper.updateByPrimaryKey(tbGoods); } |

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

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

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

|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 | hljs xml <!-- 根据主键查询数据 --> <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然后一次请求

赞(1)
未经允许不得转载:工具盒子 » 避免循环操作数据库