mybatis批量更新update的各种情况总结
2017-06-07 23:22
295 查看
项目中,为了提高效率和方便回滚,不单单只是在mvc的服务层设置回滚切点,最好是能在sql里面实现批量更新最好不过了。
mybatis作为强大的持久层框架,当然可以很好地支持批量更新。而且以下代码兼容oracle和mysql数据库
一、不同的id更新相同值的几个字段。
传值是map类型,ids可以是list也可以是数组。
二、多个不同的条件(id和bid)更新相同值的几个字段。
传值是map类型,ids是List,不同的条件在list元素对象里。
三、 不同的id更新不同值的几个字段。
传值是map类型,ids是List,所有的值都在List元素对象里面。
四、 多个不同的条件(id和bid)更新不同值的几个字段。
传值是map类型,ids是List,所有的值都在List元素对象里面。
mybatis作为强大的持久层框架,当然可以很好地支持批量更新。而且以下代码兼容oracle和mysql数据库
一、不同的id更新相同值的几个字段。
传值是map类型,ids可以是list也可以是数组。
<update id="updatebatchSame" parameterType="java.util.Map" > UPDATE Table1 SET name = #{name},code=#{code} WHERE id IN <foreach collection="ids" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </update>
二、多个不同的条件(id和bid)更新相同值的几个字段。
传值是map类型,ids是List,不同的条件在list元素对象里。
<update id="updatebatchMore" parameterType="java.util.Map" > UPDATE Table1 SET name = #{name},code=#{code} WHERE <foreach collection="ids" index="index" item="item" separator="or" > (id=#{item.id} and bid=#{item.bid}) </foreach> </update>
三、 不同的id更新不同值的几个字段。
传值是map类型,ids是List,所有的值都在List元素对象里面。
<update id="updatebatchIdList" parameterType="java.util.Map" > UPDATE Table1 SET name = <foreach collection="ids" index="index" item="item" open="case id" separator=" " close=" end"> when #{item.id} then #{item.name} </foreach> ,code= <foreach collection="ids" index="index" item="item" open="case id" separator=" " close=" end"> when #{item.id} then #{item.code} </foreach> WHERE id IN <foreach collection="ids" index="index" item="item" open="(" separator="," close=")"> #{item.id} </foreach> </update>
四、 多个不同的条件(id和bid)更新不同值的几个字段。
传值是map类型,ids是List,所有的值都在List元素对象里面。
<update id="updatebatchList" parameterType="java.util.Map" > UPDATE Table1 SET name = <foreach collection="ids" index="index" item="item" open="case " separator=" " close=" end"> when (id=#{item.id} and bid=#{item.bid}) then #{item.name} </foreach> ,code= <foreach collection="ids" index="index" item="item" open="case " separator=" " close=" end"> when (id=#{item.id} and bid=#{item.bid}) then #{item.code} </foreach> WHERE <foreach collection="ids" index="index" item="item" separator="or" > (id=#{item.id} and bid=#{item.bid}) </foreach> </update>
相关文章推荐
- Android 内存泄露总结(现在列举的情况不是很多,以后会慢慢更新)
- oracle数据库:update更新多表总结
- vue2.0组件通信各种情况总结与实例分析
- mybatis批量更新update-设置多个字段值
- [置顶] 二分查找各种情况大总结
- 各种问题解决方案总结【记录】(持续更新)
- Mysql跨表更新 多表update sql语句总结
- TPS波动各种原因总结,做过的项目大概总结下有5中以上情况...
- Java资源路径各种情况总结(classpath)
- 论坛各种问题总结--(随时更新)
- Oracle SQL:update更新语句总结
- vue2.0组件通信各种情况总结与实例分析
- opencv各种内存泄露情况的大总结
- Mysql跨表更新 多表update sql语句总结
- 采用Lists.UpdateListItems方法更新列表项各种类型值的写法
- jdbc连接mysql各种情况总结
- mybatis批量更新update-设置多个字段值
- 第五章 mybatis批量更新update
- 自己总结的CSS以及JS各种库的在线CDN引用地址,链接可以直接复制(不定期更新)
- 由一道腾讯面试题引发的关于递归函数使用的各种情况总结