唯能极于情,故能极于剑

文: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. Vue项目中设置每个单页面的标题

    两种实现方法,第一种方法引入插件,第二种为编程方式实现(推荐) 首先在路由文件index.js中给每个单页面路由添加title routes: [{     path: '/',     name: ...

  2. POJ 1170 Shopping Offers非状态压缩做法

    Shopping Offers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5659 Accepted: 2361 Descr ...

  3. Redis集群搭建的三种方式

    一.Redis主从 1.1 Redis主从原理 和MySQL需要主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生性能瓶颈,特别是在读压力上,为了分担压力,Redis支持主从复制. ...

  4. Shell脚本(五)函数

    总结下shell中的函数用法 #!/bin/bash function add_v1() { echo "call function add" } function add_v2( ...

  5. win7 64位系统使用vs2010编译OSG3.2.1

    首先我想说的是,osg是有二进制安装包的:http://openscenegraph.alphapixel.com/osg/downloads/free-openscenegraph-binary-d ...

  6. Qt插件系统

    说明 近期入职新公司,新公司的项目用到了Qt的插件系统,花时间了解了一下,还以为Qt的插件系统有多么高级呢,原来归根到底还是 dll 的动态调用时获取其中的类那一招啊,原理和之前的文章<DLL的 ...

  7. 真香!PySpark整合Apache Hudi实战

    1. 准备 Hudi支持Spark-2.x版本,你可以点击如下链接安装Spark,并使用pyspark启动 # pyspark export PYSPARK_PYTHON=$(which python ...

  8. HTTP Strict Transport Security (通常简称为HSTS)

    HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式. Freebuf百科:什么是Str ...

  9. 应用视觉设计——CSS实现线性渐变效果

    在freeCodeCamp中应用视觉设计的课程中,介绍了一种通过使用CSS属性实现线性渐变效果. 1.线性渐变: background:linear-gredient(gradient-directi ...

  10. 2018-08-27 jq筛选选择器

    筛选选择器:为了辅助选择器更简便.快速的找到元素: 1.过滤 eq(n) -> 第n个元素(从零开始) $('h1').eq(2) // 第三个h1 first() -> 第一个元素 la ...