MyBatis实现批量更新(oracle和pg)

本文介绍了在MyBatis中使用Oracle和PostgreSQL数据库进行批量更新StudentVo对象的方法。通过Mapper接口,利用<foreach>标签配合条件判断处理空值,实现了基于学生学号的记录更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

大家好呀,今天这篇文章为大家介绍MyBatis如何实现批量更新~


一、案例

提示:以下是本篇文章正文内容,下面案例可供参考
假设对象是StudentVo

package com.school.vo;

import lombok.Data;

@Data
public class StudentVo {
	/**  
	 * 学生学号(必填)
	 */
	 private String studentNo;
	
	 /**  
	 * 学生姓名
	 */
	 private String studentName;
	 
	/**  
	 * 学生年龄
	 */
	 private String studentAge;

	/**  
	 * 学生性别
	 */
	 private String studentSex;
}

现在需要进行批量更新

List<StudentVo> list;

二、MyBatis实现批量更新的方式

1.Oracle方式

mapper层(简略版本):

<update id = "updateStudentInfoBatch" parameterType = "com.school.vo.StudentVo">
	<foreach collection="list" item="item" index="index" open="BEGIN" close=";END;" separator=";">
		UPDATE STUDENT
		SET 
		STUDENT_NAME = #{item.studentName},
		STUDENT_AGE = #{item.studentAge},
		STUDENT_SEX = #{item.studentSex}
		WHERE
		STUDENT_NO = #{item.studentNo}
	</foreach>
</update>

2.postgreSql方式

<update id = "updateStudentInfoBatch" parameterType = "com.school.vo.StudentVo">
	<foreach collection="list" item="item" separator=";">
		update sch.student
		<trim prefix="set" suffixOverrides=",">
			<if test="item.studentName != null">
				student_name = #{item.studentName},
			</if>
			<if test="item.studentAge != null">
				student_age = #{item.studnetAge}
			</if>
			<if test="item.studentSex != null">
				student_sex = #{item.studentSex}
			</if>
		</trim>
		<where>
			student_no = #{item.studentNo}
		</where>
	</foreach>
</update>

总结

以上就是今天要讲的内容,本文仅仅简单介绍了MyBatis实现批量更新的两种方式,希望对大家有所帮助。


╭◜◝ ͡ ◜◝╮
( ˃̶͈◡˂ ̶͈ )感觉有用的话,欢迎点赞评论呀!
╰◟◞ ͜ ◟◞╯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柚子猫屿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值