mybatis数据批量更新
2014-07-03 10:45
197 查看
原sql语句:
update zyjd set peopleId=case
when id=1 then 10,
when id=2 then 11 end,
roadgridid =case
when id=1 then 101,
when id=2 then 102 end,
…………
where id=1 or id=2
sql意思:当id=1的情况下peopleId =10,roadgridid =101,当id=2的情况下peopleId =11,roadgridid =102,等等
mybatis配置文:
<update id="batchUpdate" parameterType="list">
update zyjd
<trim prefix="set" suffixOverrides=",">
<trim prefix="peopleId =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.peopleId!=null">
when id=#{i.id} then #{i.peopleId}
</if>
</foreach>
</trim>
<trim prefix=" roadgridid =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.roadgridid!=null">
when id=#{i.id} then #{i.roadgridid}
</if>
</foreach>
</trim>
<trim prefix="type =case" suffix="end," >
<foreach collection="list" item="i" index="index">
<if test="i.type!=null">
when id=#{i.id} then #{i.type}
</if>
</foreach>
</trim>
<trim prefix="unitsid =case" suffix="end," >
<foreach collection="list" item="i" index="index">
<if test="i.unitsid!=null">
when id=#{i.id} then #{i.unitsid}
</if>
</foreach>
</trim>
</trim>
where
<foreach collection="list" separator="or" item="i" index="index" >
id=#{i.id}
</foreach>
</update>
update zyjd set peopleId=case
when id=1 then 10,
when id=2 then 11 end,
roadgridid =case
when id=1 then 101,
when id=2 then 102 end,
…………
where id=1 or id=2
sql意思:当id=1的情况下peopleId =10,roadgridid =101,当id=2的情况下peopleId =11,roadgridid =102,等等
mybatis配置文:
<update id="batchUpdate" parameterType="list">
update zyjd
<trim prefix="set" suffixOverrides=",">
<trim prefix="peopleId =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.peopleId!=null">
when id=#{i.id} then #{i.peopleId}
</if>
</foreach>
</trim>
<trim prefix=" roadgridid =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.roadgridid!=null">
when id=#{i.id} then #{i.roadgridid}
</if>
</foreach>
</trim>
<trim prefix="type =case" suffix="end," >
<foreach collection="list" item="i" index="index">
<if test="i.type!=null">
when id=#{i.id} then #{i.type}
</if>
</foreach>
</trim>
<trim prefix="unitsid =case" suffix="end," >
<foreach collection="list" item="i" index="index">
<if test="i.unitsid!=null">
when id=#{i.id} then #{i.unitsid}
</if>
</foreach>
</trim>
</trim>
where
<foreach collection="list" separator="or" item="i" index="index" >
id=#{i.id}
</foreach>
</update>
相关文章推荐
- Mybatis+Oracle进行数据的批量插入和更新
- 使用mybatis 对 oracle数据批量插入、更新
- Mysql 在 mybatis 环境下 批量新增 并 将已存在的数据更新
- mybatis 批量新增并更新已有数据
- mybatis 注解的方式批量插入,更新数据
- Mybatis之多种数据类型的批量的更新数据库表
- Scott Mitchell 的ASP.NET 2.0数据教程之三十七:: 批量更新
- ASP.NET基础教程-使用CommandBuilder对象自动生成SQL语句对数据进行批量更新
- 批量更新数据
- 批量更新数据
- ASP.NET基础教程-使用CommandBuilder对象自动生成SQL语句对数据进行批量更新
- 使用游标批量更新数据
- 用Ado.net可以对数据进行批量添加或更新
- 批量更新数据
- 批量更新数据
- 批量更新数据
- GridView如何更新批量数据和单条记录(downmoon)?
- Scott Mitchell 的ASP.NET 2.0数据教程之三十七:: 批量更新
- 批量更新数据.
- .net中利用oracle产品自带的数据访问组件(Oracle.DataAccess.dll)提升批量更新操作的执行效率