您现在的位置是:首页 > 技术人生 > 后端技术后端技术
mybatis批量更新方式及性能对比
高晓波2021-11-16【后端技术】人已围观
简介mybatis的两种批量更新方式
1、mybatis批量更新方式
方式一:java代码内循环,示例如下:
for (DeviceTypeResult.DeviceInfo deviceInfo:devices) {
deviceService.updateType(deviceInfo);
}
方式二:利用mybatis循环拼接一条批量更新sql,一次性批量更新,示例如下:
Dao接口:
void updateTypeBatch(@Param("deviceInfos") List<DeviceTypeResult.DeviceInfo> deviceInfos);
xml文件:
<update id="updateTypeBatch">
update zhhw_device
<trim prefix="set" suffixOverrides=",">
<trim prefix="type =case" suffix="end,">
<foreach collection="deviceInfos" item="item" index="index">
when id=#{item.did} then #{item.type}
</foreach>
</trim>
</trim>
where id in
<foreach collection="deviceInfos" index="index" item="item" separator="," open="(" close=")">
#{item.did}
</foreach>
</update>
2、两种方式性能对比
实验中,我们批量更新500多条数据,采用分页的方式,每页100更新100条,以下是两种方式的耗时:1. for循环批量更新耗时:
2. 单条sql批量更新耗时:
可以明显的看到,100条数据的批量更新,两种方式效率差了80倍左右。
Tags:mybatis
很赞哦! ()
随机图文
-
Springboot集成quartz定时任务可视化配置
使用quartz定时任务已经有一段时间了,今天记录一下Springboot 2.x集成Quartz。 -
mybatis plus生成实体entity没有id
总是写很多重复的增删改查毫无意义,浪费生命,于是乎准备弄一个增删改查代码生成工具。网上查了一下mybatis plus挺好的,于是乎打开官网 Quick Start!按照官网的演示栗子:// 演示 -
【转】GPT 应用开发和思考
在过去几个月的时间中,我们似乎正处于人工智能的革命中。除了大多数人了解的 OpenAI ChatGPT 之外,许多非常新颖、有趣、实用的 AI 应用也是层出不穷,并且在使用这些应用时时,笔者也确确实实的感受到了生产力的提高。 -
SpringBoot排除自动配置
SpringBoot的自动配置给我们开发带来了极大的便利,但有些时候也带来了一些问题。 问题场景: 该项目是基于Springboot + dubbo的微服务架构,框架结构web + facade + service,某