问题:用mybatis批量update时报错,解决过一次过一段 时间就又忘记了。特记录一下
<update id="updateDigitalDataList" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update a <set> name = #{item.name} </set> where id = #{item.id} </foreach> </update>
解决:1.在数据库的连接url上 &allowMultiQueries=true
jdbc:mysql://1270.0.1:3306/itest?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
2.修改mapper.xml
<update id="updateDigitalDataList" parameterType="java.util.List"> update a set name= <foreach collection="list" item="item" index="index" separator=" " open="case id" close="end"> when #{item.id} then #{item.name} </foreach> where id in <foreach collection="list" index="index" item="item" separator="," open="(" close=")"> #{item.id} </foreach> </update>