foreach 属性介绍

foreach 用于迭代传入过来的参数。
它的属性介绍分别是

  • collection:表示传入过来的参数的数据类型。该参数为必选。要做 foreach 的对象,作为入参时,List 对象默认用 list 代替作为键,数组对象有 array 代替作为键,Map 对象没有默认的键。当然在作为入参时可以使用 @Param(“keyName”) 来设置键,设置 keyName 后,list,array 将会失效。 除了入参这种情况外,还有一种作为参数对象的某个字段的时候。举个例子:
    如果 User 有属性 List ids。入参是 User 对象,那么这个 collection = “ids” 如果 User 有属性 Ids ids;其中 Ids 是个对象,Ids 有个属性 List id;入参是 User 对象,那么 collection = “ids.id”

    • 如果传入的是单参数且参数类型是一个 List 的时候,collection 属性值为 list
    • 如果传入的是单参数且参数类型是一个 array 数组的时候,collection 的属性值为 array
    • 如果传入的参数是多个的时候,我们就需要把它们封装成一个 Map 了,当然单参数也可以封装成 map。
  • item: 循环体中的具体对象。支持属性的点路径访问,如 item.age,item.info.details。具体说明:在 list 和数组中是其中的对象,在 map 中是 value,该参数为必选。(它是每一个元素进行迭代时的别名)
  • index:在 list 和数组中,index 是元素的序号;在 map 中,index 是元素的 key。
  • open:表示该语句以什么开始
  • close:表示该语句以什么结束
  • separator:表示在每次进行迭代之间以什么符号作为分隔符

传入参数为Poji装饰类时

//映射文件
<select id="selectUserByIds" parameterType="QueryVo" resultType="User"><include refid="select"></include><where><foreach collection="idsList" item="id" separator="," open="id in (" close=")">#{id}</foreach></where>
</select>
//POJO类
public class QueryVo implements Serializable {private List<Integer> idsList;.....
}

传入参数为list时

<select id="selectUserByIds"  resultType="User"><include refid="select"></include><where><foreach collection="list" item="id" separator="," open="id in (" close=")">#{id}</foreach></where>
</select>

传入参数为array时

<select id="selectUserByIds"  resultType="User"><include refid="select"></include><where><foreach collection="array" item="id" separator="," open="id in (" close=")">#{id}</foreach></where>
</select>

MyBatis中foreach传入参数为Poji装饰类,list、数组的不同写法相关推荐

  1. Mybatis中如何传入map参数呢?

    转自: Mybatis中如何传入map参数呢? 下文笔者讲述Mybatis的xml中使用map参数的方法分享,如下所示 实现思路:1.将参数类型设置为map2.在xml中直接使用map的键值获取参数即 ...

  2. java怎么传入参数到方法当中_java中方法传入参数时:值传递还是址传递?

    JAVA中的数据类型有两大类型: ① 基本数据类型:逻辑型(boolean).文本型(char).整数型(byte.short.int.long).浮点型(float.double) ② 引用数据类型 ...

  3. SpringJpa @query 中根据传入参数(字段)排序

    SpringJpa @query 中根据传入参数(字段)排序 这种清空下,排序是失效的.请教大家怎么解决?

  4. mybatis 中 foreach collection的三种用法

    oreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. i ...

  5. mybatis中foreach标签详解

    转载自:https://blog.csdn.net/gwd1154978352/article/details/75408498 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一 ...

  6. MyBatis中foreach元素用法解析

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/70946761冷血之心的博客)          动态SQL是MyB ...

  7. MyBatis中foreach用法

    foreach用法 SQL语句中有时会使用in关键字,如id in {1,2,3},我们可以使用${ids}方式直接获取值,但是这种方法不能防止SQL注入,想避免SQL注入的话就需要使用#{id}的方 ...

  8. mybatis中foreach

    foreach 另外一个动态 SQL 通用的必要操作是迭代一个集合,通常是构建在 IN 条件中的.比如: <select id="selectPostIn" resultTy ...

  9. Mybatis中foreach的三种用法

    foreach一共有List,array,Map三种类型的使用场景. foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. item表示集合中每一个元素进行迭代时的别名, i ...

  10. Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的...

    参考mybatis入门基础(二)----原始dao的开发和mapper代理开发 其实也就是通过接口名与mapper的id绑定在一起,通过SQL去写实现类,返回数据. 转载于:https://www.c ...

最新文章

  1. 022_Table表格
  2. 如何用php新增税金一列_PHP计算个人所得税步骤详解(附代码)
  3. 赛迪数据:2018年数据中心市场数据
  4. kafka delete topic,marked for deletion
  5. 阮一峰react demo代码研究的学习笔记 - demo 6 debug - how check works
  6. python2中的unicode_在python 3和2中工作的Unicode文字
  7. [剑指offer][JAVA]面试题第[18]题[删除链表的节点]
  8. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题
  9. 社保交满15年就可以停缴了吗?就可以领取养老金了吗?
  10. loadrunner两个报错Error -27492、Error -27778 互斥的问题
  11. React Native 运行环境安装:0.6以下/以上版本的 新老项目 都适用
  12. PDG转图像、PDF的若干方法
  13. Qhsusb Dload驱动
  14. Hyperf初体验-JsonRpc的使用
  15. 阿里云的maven仓库配置
  16. 爬取QQ好友列表或定位QQ好友秘密
  17. 手把手教你R语言CIBERSORT计算免疫浸润+Rproject的使用
  18. 简单融合双系统 苹果虚拟Win8实用技巧
  19. Ubuntu20.04设置网络共享文件夹
  20. 【转载】Python 数据皮尔逊相关性分析

热门文章

  1. 2.2基本共射放大电路的工作原理
  2. CardView完全解析和使用
  3. win10非核心版本的计算机上
  4. cad2014卡顿的解决方法_AutoCAD复制卡顿的两种可能原因和解决方案
  5. Android TimePicker
  6. 谷梁科技多元化一卡通系统应用
  7. 飞控计算机功能硬件设计,基于微机的某型无人机飞控系统的硬件设计及软件实现...
  8. 金蝶软件各版本安装包下载地址
  9. yasm/nasm not found or too old. Use --disable-yasm for a crippledbuild错误
  10. VS2019C++编译GDAL3.3.2+SQLite3+PROJ6+GEOS3.7.3+HDF4+HDF5(保姆级教程)