mybatis中批量更新多个字段的2种实现方法
在mybatis中批量更新多个字段
推荐使用如下操作:
方式1:在Dao层接口中:
void updateBatch(@Param("list")List<Student> list);在对应的mapper文件中如下:
<update id="updateBatch" parameType="java.lang.List">
update student
<trim prefix="set" suffixOverrides=",">
<trim prefix=" age = case " suffix="end,">
<foreach collection="list" item="stu" index="index">
<if test=" item.age != null and item.id != null">
when id = #{item.id} then #{item.age}
</if>
<if test=" item.age == null and item.id != null">
when id = #{item.id} then mydata_table.age //原始值
</if>
</foreach>
</trim>
<trim prefix=" name = case" suffix="end,">
<foreach collection="list" item="stu" index="index">
<if test=" item.name!= null and item.id != null">
when id = #{item.id} then #{item.name}
</if>
<if test=" item.name == null and item.id != null">
when id = #{item.id} then mydata_table.name //原始值
</if>
</foreach>
</trim>
</trim>
</update>上面的sql语句打印出来,应该是这个样子的:
update student
set age = case
when id = #{item.id} then #{item.status}//此处应该是<foreach>展开值
when id = #{item.id} then #{item.status}
....
end,
name = case
when id = #{item.id} then #{item.status}
...
end
where id in (?,?,?,?...);<trim>属性说明
1.prefix,suffix 表示在trim标签包裹的部分的前面或者后面添加内容
2.如果同时有prefixOverrides,suffixOverrides 表示会用prefix,suffix覆盖Overrides中的内容。
3.如果只有prefixOverrides,suffixOverrides 表示删除开头的或结尾的xxxOverides指定的内容
方式2:在Dao层接口方法定义同上
mapper文件如下:
<update id="updateBatch" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update student
<set>
name=#{item.name},
age = #{item.age}
</set>
where id = #{item.id}
</foreach>
</update>到此这篇关于mybatis中批量更新多个字段的2种实现方法的文章就介绍到这了,更多相关mybatis 批量更新多个字段内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java Lambda表达式与匿名内部类的联系和区别实例分析
这篇文章主要介绍了Java Lambda表达式与匿名内部类的联系和区别,结合实例形式分析了Java Lambda表达式与匿名内部类功能、用法、区别及操作注意事项,需要的朋友可以参考下2019-10-10
Idea2024创建Maven项目没有src文件夹的解决步骤
本文主要介绍了Idea2024创建Maven项目没有src文件夹,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2025-02-02
JAVA SpringBoot集成Jasypt进行加密、解密的详细过程
文章详细介绍了如何在SpringBoot项目中集成Jasypt进行加密和解密,包括Jasypt简介、如何添加依赖、配置加密密钥、加密敏感数据、自定义加密配置以及加密与解密的示例,通过这些步骤,开发者可以轻松地保护应用程序中的敏感信息,感兴趣的朋友跟随小编一起看看吧2025-11-11
详解PowerDesigner之CDM、PDM、SQL之间转换
这篇文章主要介绍了详解PowerDesigner之CDM、PDM、SQL之间转换的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下2017-10-10


最新评论