mybatis 批量新增-批量修改-批量删除操作
mapper.xml
<!-- 批量新增 -->
<insert id="saveBatch" parameterType="java.util.List">
insert into t_gceb_login_log(
id ,
user_id ,
user_name ,
mip ,
jsession_id_4a ,
create_by ,
create_by_name ,
update_by ,
update_by_name ,
create_time ,
update_time ,
data_version ,
attribute1 ,
attribute2 ,
attribute3 ,
attribute4 ,
attribute5 ,
attribute6
)
values
<foreach collection="list" item="item" index="index" separator="," >
(
#{item.id},
#{item.userId},
#{item.userName},
#{item.mip},
#{item.jsessionId4a},
#{item.createBy},
#{item.createByName},
#{item.updateBy},
#{item.updateByName},
#{item.createTime},
#{item.updateTime},
#{item.dataVersion},
#{item.attribute1},
#{item.attribute2},
#{item.attribute3},
#{item.attribute4},
#{item.attribute5},
#{item.attribute6}
)
</foreach>
</insert> <!-- 批量修改 -->
<update id="updateBatch" parameterType="java.util.List">
update t_gceb_login_log
<trim prefix="set" suffixOverrides=",">
<trim prefix="userId =case" suffix="end,">
<foreach collection="list" item="item">
<if test="item.userId!=null">
when id=#{item.id} then #{item.userId}
</if>
</foreach>
</trim>
<trim prefix="attribute1 =case" suffix="end,">
<foreach collection="list" item="item">
<if test="item.attribute1!=null">
when id=#{item.id} then #{item.attribute1}
</if>
</foreach>
</trim>
</trim>
<where>
<foreach collection="list" separator="or" item="item">
id=#{item.id}
</foreach>
</where>
</update> <delete id="logBatchRemove" parameterType = "java.util.List">
delete from t_gceb_login_log
<where>
id in
<foreach collection="list" item="item" open="(" separator="," close=")" >
#{item}
</foreach>
</where>
</delete>
注意点:批量操作也是有性能问题的,一个批次建议200条
List<List<LoginLog>> batchList = ListUtils.partition(loginLogList, 200);
for (List<LoginLog> array: batchList) {
int sum = this.sqlSessionTemplate.update("loginLog.updateBatch", array);
LOGGER.debug("批量更新记录数:{}", sum);
}
mybatis 批量新增-批量修改-批量删除操作的更多相关文章
- 17、手把手教你Extjs5(十七)模块的新增、修改、删除操作
上节在Grid展示时做了一个金额单位可以手工选择的功能,如果你要加入其他功能,也只要按照这个模式来操作就行了,比如说你想改变金额字段的颜色.小数位数.零值是否显示.货币符号.单位显示在标题栏或者跟在金 ...
- mybatis,批量新增、修改,删除
转载自:http://blog.csdn.net/sanyuesan0000/article/details/19998727 最近需要用到Mybatis批量新增oracle数据库,刚开始在网上找到的 ...
- MyBatis通过注解方式批量添加、修改、删除
唯能极于情,故能极于剑 注: 本文转载于:CodeCow · 程序牛 的个人博客:http://www.codecow.cn/ 一.数据库实体DO public class User implemen ...
- 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作
最近我做的一些项目,经常需要用到对应用程序的配置文件操作,如app.config和web.config的配置文件,特别是对配置文件中的[appSettings]和[connectionStrings] ...
- js操作select控件大全(包含新增、修改、删除、选中、清空、判断存在等)
原文:js操作select控件大全(包含新增.修改.删除.选中.清空.判断存在等) js操作select控件大全(包含新增.修改.删除.选中.清空.判断存在等) js 代码// 1.判断select选 ...
- python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作
python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...
- LitePal的修改和删除操作
转载出处:http://blog.csdn.net/guolin_blog/article/details/40083685 传统的修改和删除数据方式 上篇文章中我们已经得知,SQLiteData ...
- c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)
c#封装DBHelper类 public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...
- Entity Framework 6 Recipes 2nd Edition(10-8)译 - >映射插入、修改、删除操作到存储过程
10-8. 映射插入.修改.删除操作到存储过程 问题 想要映射插入.修改.删除操作到存储过程 解决方案 假设已有运动员实体模型,如Figure 10-8所示. 对应的数据库表如Figure 10-9所 ...
- [PHP] - Laravel - 列表、新增、修改、删除例子
前言 Laravel默认是自带了CURD的功能,使用路由的Route::resource可以做到. 但真正的项目中,这往往不是我们所需要的.因为一个项目会有比较复杂的计算.验证等功能. 下面是对项目中 ...
随机推荐
- Java lambda 表达式详解(JDK 8 新特性)
什么是 lambda 表达式 lambda 表达式(拉姆达表达式)是 JAVA 8 中提供的一种新的特性,它使 Java 也能进行简单的"函数式编程". lambda 表达式的本质 ...
- java 实现简单的单点登录
https://my.oschina.net/leamon/blog/266711 https://serviceturbo-cloud-cn.huawei.com/serviceturbocloud ...
- 前端工具 | JS编译器Monaco使用教程
前言 我的需求是可以语法高亮.函数提示功能.自动换行.代码折叠 Monaco Monaco是微软家的,支持的语言很多,还有缩略地图,有时候提示不好用然后包体很大. The Monaco Editor ...
- 将代码生成器带入TVM
将代码生成器带入TVM 为了使数据科学家不必担心开发新模型时的性能,硬件后端提供程序(例如Intel,NVIDIA,ARM等)可以提供诸如cuBLAS或cuDNN之类的内核库以及许多常用的深度学习内核 ...
- Bayer滤镜转换颜色方案
Bayer滤镜如何转换颜色? Bayer模式是颜色模式,被广泛应用于CCD和CMOS摄像头.相机使用了拜耳滤镜,分别过滤得到红绿蓝三种颜色.既然要得到的是红绿蓝频段光线的强度,要通过的就是红绿蓝光,就 ...
- 什么是OpenMAX技术分析OpenMAX
什么是OpenMAX技术分析OpenMAX OpenMAX是统一的抽象层,它允许访问否则需要供应商特定API的硬件. Broadcom的MMAL(多媒体抽象层API). 因此,OpenMAX允许使用此 ...
- cuGraph-GPU图形分析
cuGraph-GPU图形分析 所述RAPIDS cuGraph库是GPU的集合加速图形算法,在GPU DataFrames中发现过程数据.cuGraph的愿景是使图分析无处不在,以至于用户只是根据分 ...
- Nvidia TensorRT开源软件
TensorRT开源软件 此存储库包含NVIDIA TensorRT的开源软件(OSS)组件.其中包括TensorRT插件和解析器(Caffe和ONNX)的源代码,以及演示TensorRT平台使用和功 ...
- python+selenium基础篇,弹窗处理
1.弹窗如下图所示 2.处理方法 from selenium.webdriver.common.action_chains import ActionChains#导入鼠标操作包 from selen ...
- 狂神说JUC学习笔记(二)
狂神说JUC的原版笔记: 链接:https://pan.baidu.com/s/12zrGI4JyZhmkQh0cqEO4BA 提取码:d65c 我的笔记在狂神的笔记上增加了一些知识点或者做了些许补充 ...