唯能极于情,故能极于剑

文:MyBatis通过注解方式批量添加、修改、删除
注:有空看看小编:CodeCow · 程序牛 的个人技术博客吧:http://www.codecow.cn/
      《 绳锯木断,水滴石穿  —— 多坚持 》

一、数据库实体DO

 public class User implements Serializable {
private Long  id; //用户ID
private String name; //用户姓名
private Integer age; //用户年龄
.......
}

二、数据库操作

  2.1、批量插入用户

     @Insert("<script>"  +
"insert into user(id, name, age) VALUES " +
"<foreach collection='list' item='item' index='index' separator=','> " +
"(#{item.id},#{item.name},#{item.age}) " +
"</foreach>" +
"</script>")
void batchInsert(@Param("list")List<User> list); //批量添加用户

  2.2、批量修改用户

     @Update({"<script>"  +
"<foreach collection='list' item='item' index='index' open='(' separator=',' close=')'> " +
"update user set name= #{item.name}, age= #{item.age} " +
"where id = #{item.id} " +
"</foreach>" +
"</script>"})
void batchUpdate(@Param("list")List<User> list);//批量修改用户

  2.3、批量删除用户

     @Delete("<script>"  +
"delete from user where id in " +
"<foreach collection='array' item='id' open='('separator=',' close=')'> " +
"#{id}" +
"</foreach>" +
"</script>")
void batchDelete(long[] ids);//批量删除用户 //☆☆☆ 如何获取 long[] ids ???
//1、获取要删除用户的集合
List<User> user = userMapper.selectAll();//用的是tk.mybatis下获取所有用户
//2、根据集合获取 long[] ids
//朋友,如果你还在用遍历、创建数组等 SAO 操作.....你 OUT 了
//让我们看看jdk8的stream流是怎么搞的:
List<Long> idList = user.stream.map(User::getId).collect(Collectors.toList());//获取id集合
long[] ids = idList.stream.mapToLong(i -> i).toArray();// 获的long[] ids 就两步就实现了(其实就一步),它不香吗???

才疏学浅,有问题请及时关注小编公众号 “CodeCow”,大家一起学习交流
绳锯木断,水滴石穿 坚持
2020/04/13 早

MyBatis通过注解方式批量添加、修改、删除的更多相关文章

  1. EF 批量 添加 修改 删除

    1批量添加    db.T_Investigator.AddRange(list) 2批量删除    db.T_Investigator.RemoveRange(list) 3批量修改   for 循 ...

  2. Windows批量添加和删除IP

    随着天气变冷了,好多小伙伴都开始变懒了,都想用最快的方式完成任务 下面给大家介绍一下Windows批量添加和删除IP的办法 (1)批量添加IP 直接在CMD下边运行下边命令. for /l %i in ...

  3. ASP.NET MVC用存储过程批量添加修改数据

    用Entity Framework 进行数据库交互,在代码里直接用lamda表达式和linq对数据库操作,中间为程序员省去了数据库访问的代码时间,程序员直接可以专注业务逻辑层的编写.但是对于比较复杂的 ...

  4. SpringBoot入门教程(四)MyBatis generator 注解方式和xml方式

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...

  5. SpringBoot定时任务升级篇(动态添加修改删除定时任务)

    需求缘起:在发布了<Spring Boot定时任务升级篇>之后得到不少反馈,其中有一个反馈就是如何动态添加修改删除定时任务?那么我们一起看看具体怎么实现,先看下本节大纲: (1)思路说明: ...

  6. JavaWeb_day03_员工信息添加修改删除

    day03员工的添加,修改,删除 修改功能 思路 : 点击修改员工数据之后,跳转到单行文本,查询要修改的员工id的全部信息,主键id设置为readonly,其余的都可以修改, 修改之后,提交按钮,提交 ...

  7. Web 1三级联动 下拉框 2添加修改删除 弹框

    Web  三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...

  8. 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件

    第三章 建议学习时间8小时      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...

  9. 【转】C#添加修改删除文件文件夹大全

    [转]C#添加修改删除文件文件夹大全 C#添加修改删除文件文件夹大全 StreamWriter sw = File.AppendText(Server.MapPath(".")+& ...

随机推荐

  1. C语言编程入门题目--No.8

    题目:输出9*9口诀. 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列. 2.程序源代码: #include "stdio.h" main() { int i,j,re ...

  2. DP 60题 -2 HDU1025 Constructing Roads In JGShining's Kingdom

    Problem Description JGShining's kingdom consists of 2n(n is no more than 500,000) small cities which ...

  3. 在Jetson TX2上安装OpenCV(3.4.0)

    参考文章:How to Install OpenCV (3.4.0) on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下面的描述 在我们使用python3进行编程时 ...

  4. 一个简单的wed服务器SHTTPD(7)———— SHTTPD内容类型的实现

    //start from the very beginning,and to create greatness //@author: Chuangwei Lin //@E-mail:979951191 ...

  5. SQLite使用(二)

    sqlite3_exec虽然好用,但是一般不推荐直接使用. 常用的一组操作是: 关于sqlite3_exec和sqlite3_prepare_v2的使用场景,建议如下: 一个小DEMO: #inclu ...

  6. P2201 数列编辑器

    传送门呀呀呀呀呀呀呀呀呀呀呀呀呀 \(乍一看题目好像很难\)(实际也确实很难) \(但是我们仔细看就发现,整个数列分成了光标前和光标后两组数列\) \(我们有什么理由不分开储存呢??\) \(然后光标 ...

  7. js基石之---es7的decorator修饰器

    es7的decorator修饰器 装饰器(Decorator)是一种与类(class)相关的语法,用来注释或修改类和类方法. decorator就是给类添加或修改类的变量与方法的. 装饰器是一种函数, ...

  8. Day_08【面向对象】扩展案例1_测试项目经理类和程序员类

    分析以下需求,并用代码实现: 1.定义项目经理类 属性: 姓名 工号 工资 奖金 行为: 工作work 2.定义程序员类 属性: 姓名 工号 工资 行为: 工作work 要求: 向上抽取一个父类,让这 ...

  9. Java三大特征:封装 继承 多态

    内部类:成员内部类.静态内部类.方法内部类.匿名内部类. 内部类:定义在另外一个类里面的类,与之对应,包含内部类的外部类被称为外部类. 内部类的作用:(1)内部类提供了更好的封装,可以把内部类隐藏在外 ...

  10. Java网络小结

    1,定位 IP对机器的定位 端口对软件的定位(65535) URL对软件上每一份资源的定位 2,TCP和UDP TCP 安全,性能低 ①ServerSocket②Socket UDP不安全,性能高 ① ...