1 Star 0 Fork 0

raos / MybatisBatchUpdate

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

MybatisBatchUpdate

介绍

本次项目主要是为了进行 mybatis的批量更新 数据实体的验证和探究

软件架构

本次采用的是 springboot + mybatis + mysql技术

mybatis的批量更新的方案

方案一:采用mysql连接允许多条sql执行,将update语句分次执行,使用的是mybatis的foreach语法遍历执行,语句如下:

<!-- 批量更新用户信息 方式一 -->
<update id="updateUserItem"  parameterType="java.util.List">
	<foreach collection="list" item="item"  separator=";">
		update sys_user
		<set>
			<if test="item.username != null and item.username.trim() != ''">
				`username` = #{item.username},
			</if>
			<if test="item.password != null and item.password.trim() != ''">
				`password` = #{item.password},
			</if>
			<if test="item.realName != null and item.realName.trim() != ''">
				`real_name` = #{item.realName},
			</if>
			<if test="item.telephone != null and item.telephone.trim() != ''">
				`telephone` = #{item.telephone},
			</if>
			<if test="item.mail != null and item.mail.trim() != ''">
				`mail` = #{item.mail}
			</if>
		</set>
		where `id` = #{item.id}
	</foreach>
</update>

方案一:采取case when语法,使用的是mybatis的 trim语法 + foreach语法 执行,语句如下:

<!-- 批量更新用户信息 方式二 -->
	<update id="updateUserItem2"  parameterType="java.util.List">
		update sys_user
		<trim prefix="set" suffixOverrides=",">
			<trim prefix="username = case" suffix="end,">
				<foreach collection="list" item="item">
					<if test="item.username != null and item.username.trim() != ''">
						when id=#{item.id} then #{item.username}
					</if>
				</foreach>
			</trim>
			<trim prefix="password = case" suffix="end,">
				<foreach collection="list" item="item">
					<if test="item.password != null and item.password.trim() != ''">
						when id=#{item.id} then #{item.password}
					</if>
				</foreach>
			</trim>
			<trim prefix="real_name = case" suffix="end,">
				<foreach collection="list" item="item">
					<if test="item.realName != null and item.realName.trim() != ''">
						when id=#{item.id} then #{item.realName}
					</if>
				</foreach>
			</trim>
			<trim prefix="telephone = case" suffix="end,">
				<foreach collection="list" item="item">
					<if test="item.telephone != null and item.telephone.trim() != ''">
						when id=#{item.id} then #{item.telephone}
					</if>
				</foreach>
			</trim>
			<trim prefix="mail = case" suffix="end,">
				<foreach collection="list" item="item">
					<if test="item.mail != null and item.mail.trim() != ''">
						when id=#{item.id} then #{item.mail}
					</if>
				</foreach>
			</trim>
		</trim>
		<where>
			<foreach collection="list" item="item" open="( " separator=") or (" close=" )">
				id = #{item.id}
			</foreach>
		</where>
	</update>

空文件

简介

暂无描述 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/raoshuang/mybatis-batch-update.git
git@gitee.com:raoshuang/mybatis-batch-update.git
raoshuang
mybatis-batch-update
MybatisBatchUpdate
master

搜索帮助