mybatis批量更新数据操作

一. 问题背景

后台:使用SSM框架
项目:一个商城

描述:批量购买商品后,商品的销量和库存都得更新,由此要执行批量更新操作

二. 解决方案

  • 首先最最最最最关键的是在数据库链接后加上参数allowMultiQueries=true ,如下:
    在这里插入图片描述
  • 在mapper.xml文件中书写sql语句,如下(collection属性的值如果用传进来的方法参数,那么得在参数前加@Param(“cartitems”)

mapper.java接口文件(即常说的Dao接口)

public Integer updateSalesAndStock2(@Param("cartitems")List<Cartitem> cartitems);

要注意在sql语句最后加上分号;,或者在foreach标签中使用separator=";"

<!--public Integer updateSalesAndStock2(@Param("cartitems")List<Cartitem> cartitems); -->
	<update id="updateSalesAndStock2">
	    <foreach collection="cartitems" item="cartitem" >
			   update up_product set
			   sales = sales + #{cartitem.num},
			   stock = stock - #{cartitem.num}
			   where product_id = #{cartitem.product_id};
	    </foreach>
	</update> 

在这里插入图片描述

发布了352 篇原创文章 · 获赞 20 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_40634846/article/details/105174547