今天遇到写批量更新的时候遇到这个问题,代码如下
<update id="batchUpdate" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update market_coupon_detail <set> user_id=#{item.userId}, user_name=#{item.userName}, status=#{item.status}, update_time=now(), used_time=now() </set> where code = #{item.code} </foreach> </update>
后面发现是由于没有指定数据类型,userName转成了int,
user_name=#{item.userName,jdbcType=VARCHAR},
```加上jdbcType=VARCHAR即可