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 批量更新多个字段内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Jmeter 中 CSV 如何参数化测试数据并实现自动断言示例详解
这篇文章主要介绍了Jmeter 中 CSV 如何参数化测试数据并实现自动断言,本文通过示例给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07SpringBoot整合Docker实现一次构建到处运行的操作方法
本文讲解的是 SpringBoot 引入容器化技术 Docker 实现一次构建到处运行,包括镜像构建、Docker仓库搭建使用、Docker仓库可视化UI等内容,需要的朋友可以参考下2022-10-10Spring Cloud Alibaba Nacos 入门详解
这篇文章主要介绍了Spring Cloud Alibaba Nacos入门详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-03-03使用restTemplate.postForEntity()的问题
这篇文章主要介绍了使用restTemplate.postForEntity()的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-09-09java新增关联的三张表,每张表要求都插入集合,代码实现方式
这篇文章主要介绍了java新增关联的三张表,每张表要求都插入集合,代码实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12
最新评论