时间:2021-05-20
下面给大家介绍mybatis批量更新报错问题,
allowMultiQueries=true后来发现是jdbc链接没有加允许批量更新操作的参数引起的,不加会报badsql,mysql版的mybatis批量更新操作如下
<update id="updateOrderOverdueStatus" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update t_am_bystages_order <set> overdue_status=#{item.overdueStatus} </set> where order_id=#{item.orderId} </foreach> </update>下面看下Mybatis批量更新数据的方式
第一种方式
<update id="updateBatch" parameterType="Map"> update aa set a=#{fptm}, b=#{csoftrain} where c in <foreach collection="cs" index="index" item="item" pen="("separator=","close=")"> #{item} </foreach> </update>但是这种方式修改的字段值都是一样的。
第二种方式
修改数据库连接配置:&allowMultiQueries=true
比如:jdbc:MySQL://192.168.1.236:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
<update id="batchUpdate" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update test <set> test=${item.test}+1 </set> where id = ${item.id} </foreach> </update>这种方式,可以一次执行多条SQL语句
参考:
mybatis执行批量更新batch update 的方法(oracle,mysql两种)
以上所述是小编给大家介绍的详解Mybatis批量更新报错,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
主要在JDBC链接中加入这个参数即可:useAffectedRows=true补充知识:mybatis批量update,返回行数为-1mybatis批量更新返回
前言通过Mybatis做7000+数据量的批量插入的时候报错了,errorlog如下:,('G61010352','610103199208291214','学
很多人在用MyBatis或者通用Mapper时,经常会问有没有批量插入和批量更新的方法。实际上许多时候没必要用去实现特别复杂的批量操作。直接通过MyBatis的
很多人在用MyBatis或者通用Mapper时,经常会问有没有批量插入和批量更新的方法。实际上许多时候没必要用去实现特别复杂的批量操作。直接通过MyBatis的
Mybatis实现批量更新操作方式一:updatetableNamename=${item.name},name2=${item.name2}whereid=$