Mybatis之多种数据类型的批量的更新数据库表

我想实现的效果是:更新cap_fo_order表的订单状态=待审核、时间=当前,更新条件是订单id在(id1,id2,id3等多个)范围中并且(订单状态 = “01” and 订单状态的描述 = “初始化”) 。这也就意味着我必须传递多个不同类型的参数。

话不多说,上代码展示:
//FoOrderRepository文件批量的更新数据库的表

Integer updateMulity(@Param("orderStatus") String orderStatus, @Param("orderStatusDesc") String orderStatusDesc, @Param("updateTime") Date updateTime, @Param("whereIds") List<String> whereIds, @Param("whereOrderStatusAndDesc") Map<String, String> whereOrderStatusAndDesc);

//FoOrderMapper文件的批量更新数据库表的sql

Integer updateMulity(@Param("orderStatus") String orderStatus, @Param("orderStatusDesc") String orderStatusDesc, @Param("updateTime") Date updateTime, @Param("whereIds") List<String> whereIds, @Param("whereOrderStatusAndDesc") Map<String, String> whereOrderStatusAndDesc);

//Mybatis中的sql语句

<update id="updateMulity" parameterType="java.util.Map" > UPDATE cap_fo_order SET status = #{orderStatus,jdbcType=VARCHAR}, status_desc = #{orderStatusDesc,jdbcType=VARCHAR}, update_time = #{updateTime,jdbcType=TIMESTAMP}WHERE id in <foreach collection="whereIds" item="item" index="index" open="(" separator="," close=")" > #{item} </foreach> and <foreach collection="whereOrderStatusAndDesc" item="item" index="index" open="(" separator="or" close=")" > (status = #{index} and status_desc = #{item}) </foreach> </update>

//最后在serviceImpl层进行事物级别的校验,防止脏数据和被篡改

Integer updateResult = foOrderService.updateMulity(orderStatus, orderStatusDesc, updateTime, whereIds, whereOrderStatusAndDesc);
assertEquals("Error:cancleOrTradeRefund -> updateMulity - 批量更新操作失败。",new Integer(orderIdArray.size()), updateResult);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值