MP实战系列(十九)之批量新增
批量操作在实际开发中也应用非常多,例如批量下发优惠券、批量添加用户等。
以MyBatis为例,通常实现批量操作,有这么几种方式?
第一,单条插入sql语句,进行for循环遍历,基准条件是根据前端传过的数组长度而定,如果传了四个参数过来,也就是长度为4,代表遍历4次(也就是执行四次插入),这种方式不太建议采用;
第二、编写相关mapper
关于这一点不再赘述,,也参考我的这篇文章SSM框架之批量增加示例(同步请求jsp视图解析)
其主要使用的就是MyBatis的动态sql;
换做MyBatis-Plus,就不必要编写批量新增相关的sql以及mapper(可以理解为数据访问接口),因为MyBatis-Plus已经封装好了,你只需按照对应的规则进行调用即可。
以下面这段路由层代码为例,示例如下:
@PostMapping("/betchAddUserGroup")
@ApiOperation(value = "批量添加用户到对应的分组", notes = "批量添加用户到对应的分组")
public JSONObject betchAddUserGroup(@RequestParam String[] userIds, @RequestParam String groupId) {
JSONObject returnJson = new JSONObject();
ArrayList<UserGroup> list = new ArrayList<UserGroup>();
for (String userId : userIds) {
Console.log("userId:" + userId);
UserGroup userGroup = new UserGroup();
userGroup.setGroupId(Integer.parseInt(groupId));
userGroup.setUserId(Integer.parseInt(userId));
list.add(userGroup);
}
boolean isAddUserGroup = userGroupService.insertBatch(list);
if (isAddUserGroup) {
returnJson.put(ResponseUtils.CODE, ResponseUtils.SUCCESS_CODE);
returnJson.put(ResponseUtils.MSG, ResponseUtils.SUCCEESS_MSG);
} else {
returnJson.put(ResponseUtils.CODE, ResponseUtils.ERROR_CODE);
returnJson.put(ResponseUtils.MSG, ResponseUtils.ERROR_MSG);
}
return returnJson;
}
这里我使用的是insertBetch,关于MyBatis-Plus批量添加或修改相关的API,如图:

MP实战系列(十九)之批量新增的更多相关文章
- MP实战系列(十四)之分页使用
MyBatis Plus的分页,有插件式的,也有其自带了,插件需要配置,说麻烦也不是特别麻烦,不过觉得现有的MyBatis Plus足以解决,就懒得配置插件了. MyBatis Plus的资料不算是太 ...
- MP实战系列(十二)之封装方法详解(续二)
继续MP实战系列(十一)之封装方法详解(续一)这篇文章之后. 此次要讲的是关于查询. 查询是用的比较多的,查询很重要,好的查询,加上索引如鱼得水,不好的查询加再多索引也是无济于事. 1.selectB ...
- MP实战系列(十)之SpringMVC集成SpringFox+Swagger2
该示例基于之前的实战系列,如果公司框架是使用JDK7以上及其Spring+MyBatis+SpringMVC/Spring+MyBatis Plus+SpringMVC可直接参考该实例. 不过建议最好 ...
- MP实战系列(十八)之XML文件热加载
你还在为每次修改XML文件中的SQL重新启动服务器或者是等待几分钟而烦恼吗? 配置了热加载即可解决你的这个问题. 这就是XML文件热加载的目的,减少等待时间成本,提高开发效率. SSM框架配置(Spr ...
- MP实战系列(十五)之执行分析插件
SQL 执行分析拦截器[ 目前只支持 MYSQL-5.6.3 以上版本 ],作用是分析 处理 DELETE UPDATE 语句, 防止小白或者恶意 delete update 全表操作! 这里我引用M ...
- MP实战系列(十六)之性能分析插件
性能分析拦截器,用于输出每条 SQL 语句及其执行时间. 虽然使用阿里的Druid连接池可以完成这个目的,但是,我们一般认为,目前的组件能够达到这个目的,尽量使用目前的组件,因为修改配置和引入第三方库 ...
- Java并发编程原理与实战三十九:JDK8新增锁StampedLock详解
1.StampedLock是做什么的? ----->它是ReentrantReadWriteLock 的增强版,是为了解决ReentrantReadWriteLock的一些不足. 2.Ree ...
- MP实战系列(九)之集成Shiro
下面示例是在之前的基础上进行的,大家如果有什么不明白的可以参考MP实战系列的前八章 当然,同时也可以参考MyBatis Plus官方教程 建议如果参考如下教程,使用的技术为spring+mybatis ...
- MP实战系列(七)之集成springboot
springboot是现在比较流行的微服使用的框架,springboot本质上就是将spring+springmvc+mybatis零配置化,基本上springboot的默认配置符合我们的开发.当然有 ...
随机推荐
- Java基础篇(中)
4.Java 关键字 下面列出了 Java 关键字.这些保留字不能用于常量.变量.和任何标识符的名称. 类别 关键字 说明 访问控制 private 私有的 protected 受保护的 public ...
- 2019 找钢网java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.找钢网等公司offer,岗位是Java后端开发,因为发展原因最终选择去了找钢网,入职一年时间了,也成为了面试官 ...
- Java自学-异常处理 Exception
Java 异常 Exception 异常定义: 导致程序的正常流程被中断的事件,叫做异常 步骤 1 : 文件不存在异常 比如要打开d盘的LOL.exe文件,这个文件是有可能不存在的 Java中通过 n ...
- JS调用栈的一些总结
原文地址 调用栈 调用栈是解释器追踪函数执行流的一种机制.当执行环境中调用了多个函数函数时,通过这种机制,我们能够追踪到哪个函数正在执行,执行的函数体中又调用了哪个函数. 我们知道JavaScript ...
- 服务上的图片直接在浏览器上可以打开,但是在img上报404错误处理方法
在index.html中添加代码如下 <meta name="referrer" content="no-referrer" /> 如果还是存在问题 ...
- android studio学习---快捷键
快捷键学习 TIPS: 1.异常代码块 或者自定义代码块结构 Ctrl+Alt+T 或者 File | Settings | File and Code Templates When yo ...
- 如何实现android和服务器长连接
转载 这种功能实际上就是数据同步,同时要考虑手机本身.电量.网络流量等等限制因素,所以通常在移动端上有一下两个解决方案: 1.一种是定时去server查询数据,通常是使用HTTP协议来访问web服务器 ...
- JAVA自定义查询策略
此文章为个人笔记,考虑之后工作用到,博客方便于查找,如果可以给他人提供参考价值,那再好不过 1.定义查询接口参数 package com.qy.code.generator.query; import ...
- python的包管理软件Conda的用法
创建自己的虚拟环境 conda create -n learn python= 切换环境: activate learn 查看所有环境: conda env list 安装第三方包: conda in ...
- webpack4.0报WARNING in configuration警告
在进行webpack打包工作时,先进行如下步骤 1). 安装webpack:推荐全局命令 cnpm install webpack -g 查看webpack版本 webpack -v 2) . 此时 ...