mybatis批量操作(foreach)
foreach可以在SQL语句中通过拼接的方式进行集合迭代。foreach元素的属性主要有collection,item,index,separator,open,close。
item属性:表示循环体中的具体对象,即集合中每一个元素进行迭代时的别名。
具体说明:item支持属性的点路径访问,如item.age,item.info.details。在list和数组中是其中的对象,在map中是value。该参数为必选。
index属性:指定一个名字,用于表示在迭代过程中,每次迭代到的位置。
具体说明:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选。
separator属性:表示在每次进行迭代之间以什么符号作为分隔符。
具体说明:例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。该参数可选。
open属性:foreach代码的开始符号,表示该语句以什么开始。
具体说明:一般是"(“和close=”)"合用。常用在in(),values()时。该参数可选。
close属性:foreach代码的结束符号,表示该语句以什么结束。
具体说明:一般是")“和open=”("合用。常用在in(),values()时。该参数可选。
collection属性:foreach传入的对象参数。
具体说明:该参数必选。在不同情况下,该属性的值是不一样的,主要有一下3种情况:
a. 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list ;
b. 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array ;
c. 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map。实际上在传入参数的时候,框架也会把它封装成一个Map的,map的key就是参数名,这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key。
---------------------
作者:王晓(Java)
来源:CSDN
原文:https://blog.csdn.net/qq_29229567/article/details/84972319
版权声明:本文为博主原创文章,转载请附上博文链接!
mybatis批量操作(foreach)的更多相关文章
- mybatis map foreach遍历
mybatis map foreach遍历 转至http://www.cnblogs.com/yg_zhang/p/4314602.html mybatis 遍历map实例 map 数据如下 Map& ...
- mybatis中foreach的用法(转)
foreach一共有三种类型,分别为List,[](array),Map三种. foreach属性 属性 描述 item 循环体中的具体对象.支持属性的点路径访问,如item.age,item.inf ...
- mybatis的foreach标签
今天写sql发现了一点问题,乱弄了好久算是搞定了.关于mybatis的批量插入使用foreach插入形式为: insert into role_privilege( role_id, privileg ...
- mybatis之foreach用法
在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了 foreach元素的属性主要有item, ...
- MyBatis 使用 foreach 批量插入
MyBatis 使用 foreach 批量插入 参考博文 老司机学习MyBatis之动态SQL使用foreach在MySQL中批量插入 使用MyBatis一次性插入多条数据时候可以使用 <for ...
- MyBatis的foreach查询(List、Array、Map)
mybatis 中 foreach collection的三种用法 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index ...
- MyBatis 批量操作、集合遍历-foreach
在使用mybatis操作数据库时,经常会使用到批量插入.IN条件查询的情况,这时就难免要使用到foreach元素.下面一段话摘自mybatis官网: foreach 元素的功能是非常强大的,它允许你指 ...
- Mybatis 循环 foreach, 批量操作
mapper.java: int modifySortOfGoods(@Param("idlist") List<String> goodsIds, @Param(&q ...
- mybatis批量操作-xml方式
在实际项目中,我们一般都会用到批量insert.delete.update等操作,由于使用频率还是蛮高的,这里就做个简单的记录,供以后学习和参考. 批量insert 在数据库中,批量插入可以是多条in ...
随机推荐
- Cocos2d坐标系具体解释
1.笛卡尔坐标系 左手坐标系(Direct3D坐标系),右手坐标系(Direct3D坐标系) 大拇指和食指分别相应x轴和y轴 2.UI坐标系 iOS/Android/Windows SDK中的通用UI ...
- Xcode9自带版本控制系统(Git)的使用
情形一:新项目工程 前提是首先你得有个Github账号. 1.创建新工程,选中使用git,创建本地仓库. 2.在偏好设置添加git账号. 3.创建Github远程仓库,xcode会自动帮你在Githu ...
- Socket 长连接 短连接 心跳 JAVA SOCKET编程
简单解释就是: 短连接:建立连接,发送数据包.关闭连接 长连接:建立连接.发送数据包,发送心跳包,发送数据包,发送心跳包.发送心跳包. ..... 所以又频繁的数据收发的话.短连接会频繁创建TCP连接 ...
- 运行Java -jar somefile.jar时发生了什么(二)
(6)Java.c中的LoadMainClass 位置jdk/src/share/bin/java.c 该方法负责载入main函数所在的类. 该方法首先载入sun.launcher.LauncherH ...
- 拥抱开源——Linux C/C++程序猿必须熟悉的开源项目
作为一个经验丰富的Linux C/C++程序猿, 肯定亲手写过各种功能的代码, 比方封装过数据库訪问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件訪问的类. 封装过UI界面库等. 也在实 ...
- IT痴汉的工作现状22-由Dalvik虚拟机引发的口水战
Dalvik是啥呢? 从未知道冰岛有Dalvik这么一个重要的村庄.直到Dan Bornstein将自己为Android系统编写的进程虚拟机命名为Dalvik后才被我所知. 它是Android系统独有 ...
- luogu 1939 【模板】矩阵加速(数列)
题目大意: a[1]=a[2]=a[3]=1 a[x]=a[x-3]+a[x-1] (x>3) 求a数列的第n项%1000000007 思路: 使用矩阵快速幂进行加速 在草稿纸上填了填数 然后就 ...
- 洛谷P2303 [SDOi2012]Longge的问题
题目背景 SDOi2012 题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). ...
- bag of words in c++
#include <iostream> #include <vector> #include <cstddef> #include <string> # ...
- Going Home(MCMF)
http://poj.org/problem?id=2195 题意:在一个n*m的图中,'m'代表人,'H'代表房子,人每移动一次的费用为1,求所有人移动到房子里的最小花费. 思路:最小费用最大流问题 ...