一、批量插入

1.mapper层

 int insertBatchRoleUser(@Param("lists") List<RoleUser> lists);//@Param中的参数必须和mapper.xml中foreach的collection对应,若果不写@Param注解并且只传入一个list作为参数,则collection默认填list

2.mapper.xml

<insert id="insertBatchRoleUser">
INSERT INTO MS_USER_ROLE(ID, ROLEID, USERID,
STATUS, CREATETIME, UPDATETIME,
DELETETIME, CREATERID, UPDATERID,
DELETERID)
VALUES
<foreach collection="lists" item="user" separator=",">
(
#{user.id,jdbcType=VARCHAR}, #{user.roleid,jdbcType=VARCHAR}, #{user.userid,jdbcType=VARCHAR},
#{user.status,jdbcType=INTEGER}, #{user.createtime,jdbcType=TIMESTAMP}, #{user.updatetime,jdbcType=TIMESTAMP},
#{user.deletetime,jdbcType=TIMESTAMP}, #{user.createrid,jdbcType=VARCHAR}, #{user.updaterid,jdbcType=VARCHAR},
#{user.deleterid,jdbcType=VARCHAR}
)
</foreach>
</insert>

二、批量删除

1.mapper

int deleteBatchRoleUser(@Param("roleId") String roleId, @Param("list") List<String> userIds);

2.mapper.xml

<!-- 批量删除 -->
<delete id="deleteBatchRoleUser">
DELETE FROM MS_USER_ROLE WHERE ROLEID = #{roleId,jdbcType=VARCHAR} AND USERID IN
<foreach collection="list" item="id" separator="," open="(" close=")">
#{id,jdbcType=VARCHAR}
</foreach>
</delete>

mybatis使用foreach进行批量插入和删除操作的更多相关文章

  1. 个人永久性免费-Excel催化剂功能第32波-空行空列批量插入和删除

    批量操作永远是效率提升的王道,也是Excel用户们最喜欢能够实现的操作虽说有些批量操作不一定合适Excel的最佳实践操作,但万千世界,无奇不有,特别是在国人眼中领导最大的等级森严的职场环境下.Exce ...

  2. mybatis + mysql 批量插入、删除、更新

    mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...

  3. Java创建二叉搜索树,实现搜索,插入,删除操作

    Java实现的二叉搜索树,并实现对该树的搜索,插入,删除操作(合并删除,复制删除) 首先我们要有一个编码的思路,大致如下: 1.查找:根据二叉搜索树的数据特点,我们可以根据节点的值得比较来实现查找,查 ...

  4. [剑指offer]09用两个栈实现队列插入和删除操作,C++实现

    原创博文,转载请注明出处! # 本文为牛客网<剑指offer>刷题笔记 1.题目 # 用两个栈实现队列的插入和删除操作 2.思路 栈服从先入后出的原则处理数据,队列服从先入先出的原则处理数 ...

  5. MyBatis向数据库中批量插入数据

    Foreach标签 foreach: collection:指定要遍历的集合; 表示传入过来的参数的数据类型.该参数为必选.要做 foreach 的对象,作为入参时,List 对象默认用 list 代 ...

  6. 【MyBatis】几种批量插入效率的比较

    批处理数据主要有三种方式: 反复执行单条插入语句 foreach 拼接 sql 批处理 一.前期准备 基于Spring Boot + Mysql,同时为了省略get/set,使用了lombok,详见p ...

  7. mybatis 注解的方式批量插入,更新数据

    一,当向数据表中插入一条数据时,一般先检查该数据是否已经存在,如果存在更新,不存在则新增  使用关键字  ON DUPLICATE KEY UPDATE zk_device_id为主键 model  ...

  8. React---简单实现表单点击提交插入、删除操作

    import React,{Component,Fragment} from 'react' class App extends Component { constructor(){ super() ...

  9. mybatis的三种批量插入以及次效率比较

    1.表结构 CREATE TABLE `t_user` ( `id` varchar(32) CHARACTER SET utf8 NOT NULL COMMENT '主键', `name` varc ...

随机推荐

  1. java中可以让程序暂停几秒执行的代码

    //n为毫秒数 try { Thread.sleep ( n ) ; } catch (InterruptedException ie){} try { TimeUnit.SECONDS.sleep( ...

  2. mysql sql语句高级写法

    将user表的内容,插入到team_member表INSERT INTO team_member (Nike,HeadImageUrl) SELECT Nike,HeadImageUrl FROM u ...

  3. iOS NSLog去掉时间戳及其他输出样式

    1.一般项目中我的NSLog会在Prefix.pch文件添加如下代码,已保证在非调试状态下NSLog不工作   1 2 3 4 5 #ifdef DEBUG #define NSLog(...) NS ...

  4. WCF WS-Security and WSE Nonce Authentication【转】

    原文:http://weblog.west-wind.com/posts/2012/Nov/24/WCF-WSSecurity-and-WSE-Nonce-Authentication?utm_sou ...

  5. 扩展ScriptBundle,支持混淆加密javascript

    一.需求: 在web开发中,经常会处理javascript的一些问题,其中就包括js的压缩,合并,发布版本以及混淆加密等等问题.在asp.net 开发中我们使用ScriptBundle已经可以解决ja ...

  6. c++交叉#include问题

    这个问题会引起莫名其妙的编译错误, 碰到类里有其他类的指针的话,不要#include,提前声明下即可 class_a.h #ifndef CLASS_A_H #define CLASS_A_H cla ...

  7. pthread中互斥量,锁和条件变量

    互斥量 #include <pthread.h> pthread_mutex_t mutex=PTHREAD_MUTEX_INTIIALIZER; int pthread_mutex_in ...

  8. 【转】Windows消息投递流程:WM_COMMAND消息流程

    原文网址:http://blog.csdn.net/hyhnoproblem/article/details/6182585 该示例通过研究基本的单文档程序的“文件”--“打开”命令,分析WM_COM ...

  9. Linux 增加系统调用 (转)

    Linux 增加系统调用大致步骤: 1.下载好内核文件,在内核源文件中添加好自己的调用函数. 2.编译内核 3.验证. 一.在内核源文件中增加自己的函数 首先将内核文件移至/usr/src/下并解压. ...

  10. 学习笔记之Tips for Macbook

    写给Mac新手的入门指南 - 威锋网 https://mp.weixin.qq.com/s/pqmqGZhNwevx57KeLnzZmg https://bbs.feng.com/read-htm-t ...