Mybatis批量更新报错问题
下面给大家介绍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批量更新报错,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
聊聊@Autowired注解注入,写接口名字还是实现类的名字
这篇文章主要介绍了聊聊@Autowired注解注入,写接口名字还是实现类的名字,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11
application.yml和bootstrap.yml不生效的3种解决方案
SpringBoot默认支持 properties(.properties) 和 YAML(.yml .yaml ) 配置文件,本文主要介绍了application.yml和bootstrap.yml不生效的3种解决方案,具有一定的参考价值,感兴趣的可以了解一下2024-03-03
SpringBoot整合Spring Security过滤器链加载执行流程源码分析(最新推荐)
Spring Boot 对于 Spring Security 提供了自动化配置方案,可以使用更少的配置来使用 Spring Security,这篇文章主要介绍了SpringBoot整合Spring Security过滤器链加载执行流程源码分析,需要的朋友可以参考下2023-02-02


最新评论