Mybatis 批量修改表数据 通过list对象
现有问题:mybatis如何使用包含对象的list进行表数据的修改?
实体类如下
@Data
@Setter
@Getter
public class Goods {
private Integer id;
private String type;
private String name;
private Double price;
private Integer status;
private String path;
private Integer num;
private Integer count;
private String business_id;
}
mapper方法
void updateDeduceInventoryBYGoodsList(@Param("goodsList")List<Goods> goodsList);
xml方法
<update id="updateDeduceInventoryBYGoodsList">
<foreach collection="goodsList" item="goods" separator=";" index="index">
update goods
<set>
<if test="goods.count != null">
num = num - #{goods.count},
</if>
</set>
<where>
num >= #{goods.count} and id = #{goods.id}
</where>
</foreach>
</update>
若是配置完成运行:发现当list内容为一个对象时,程序执行没问题,但是多个对象批量处理,报以下错误。
Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
这是因为MySQL默认支持的时执行单条SQL语句,批量执行多条SQL语句需在数据源的MySQL URL中添加:&allowMultiQueries=true 如下: