MyBatis中的foreach标签的详细介绍_mybatis foreach 标签详解_小蚂蚁hjk的博客-程序员宝宝

技术标签: java  

foreach 也就是遍历迭代,在SQL中通常用在 in 这个关键词的后面

foreach元素的属性主要有 item,index,collection,open,separator,close。

分别代表:

item表示集合中每一个元素进行迭代时的别名,

index用于表示在迭代过程中,每次迭代到的位置,

open表示该语句以什么开始,

separator表示在每次进行迭代之间以什么符号作为分隔 符,

close表示以什么结束

 

代码片段:

<select id="selectByIds" resultType="com.txw.pojo.User">

        select * from user where id in

        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">

            #{item}

        </foreach>

</select>

 

而最为重要的就是collection属性了,既然是迭代就表示传入的参数是多个,这时候传入的参数就有以下几种可能:

1. 传入的参数为list的时候

 对应的Dao中的Mapper文件是:

public List<User> selectByIds(List<Integer> ids);

 

xml文件代码片段:

<select id="selectByIds" resultType="com.txw.pojo.User">

        select * from user where id in

        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">

            #{item}

        </foreach>

</select>

 

 

2. 传入的参数为Array的时候

对应的Dao中的Mapper文件是:

public List<User> selectByIds(int[] ids);

 

xml文件代码片段: 

<select id="selectByIds" resultType="com.txw.pojo.User">

        select * from user where id in

        <foreach collection="array" index="index" item="item" open="(" separator="," close=")">

            #{item}

        </foreach>

    </select>

 

3. 传入的参数为Map的时候

 

对应的Dao中的Mapper文件是:

public List<User> selectByIds(Map<String, Object> params);

 

xml文件代码片段: 

<select id="selectByIds" resultType="com.txw.pojo.User">

        select * from user where  id in

        <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">

            #{item}

        </foreach>

    </select>

 

map的时候需要注意的是:collection的值“ids”是存储在map中的key(比如:map.put("ids",ids));尤其需要注意;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43167662/article/details/111867236

智能推荐

【已解决】解决80端口被系统SYSTEM占用的问题_五命九九的博客-程序员宝宝

问题描述本想更改tomcat端口为80,但是启动失败,原因是端口被占用。进入dos输入netstat -ano 找到PID为4的应用占用,查看任务管理器的详细信息发现是被SYSTEM占用原因上网查询资料发现是由于SQL Server的一些服务自动启动导致占用了80端口。解决dos输入services.msc进入服务:关闭MYSQLSERVER有关的已启动的服务。我是以下

对BSD的新路由查找算法的理解_dog250 路由查找_dog250的博客-程序员宝宝

bsd的路由查找算法我研究过一段时间,当时我们要自己写一个路由查找模块,要扩展性好的,要紧凑的,耦合性低的,于是我就选择了bsd的radix算 法,它不同于linux的哈希表查找算法,linux内核实现了两种查找算法,一个是哈希表算法,一个是LC-trie算法,我感觉linux设计的东西 不是那么紧凑,但绝对是一件艺术品,比较适合有品味的人欣赏和使用,大多数人还是驯服不了它,唉,承认自己的品味低,

2017第35届北京礼品、赠品及家庭用品展会(春季)会刊(参展商名录)_华展云账户_华展云的博客-程序员宝宝

2017第35届北京礼品、赠品及家庭用品展会(春季)会刊(参展商名录)展会名称: 2017年第35届中国北京国际礼品、赠品及家庭用品展览会    所属展馆: 中国国际展览中心(老馆)    开展时间: 2017-03-17 至 03-19参展商名录请百度华展云直接免费获取更多详细的联系方式请百度搜索 华展云华展云简介华展云是针对展览人的信息化工作平台,201

FDTD 周期斜入射 with BPML using OPENGEMS_Memory.h_lordofwind613的博客-程序员宝宝

<br /> <br />-------------------------------<FDTD.h>#pragma onceclass CFDTD{public: CFDTD(void); ~CFDTD(void);private:public: int nn; int stopnn; //int stopnn_Array; //int mode; double dt; double dx; double dy; double

随便推点

自然场景文本处理论文整理 (4)PixelLink_Missayaa的博客-程序员宝宝

摘要大多数最先进的场景文本检测算法是基于深度学习的方法,其依赖于边界框回归并且执行至少两种预测:文本/非文本分类和位置回归。回归在这些方法中获取边界框中起着关键作用,但它不是必不可少的,因为文本/非文本预测也可以被视为一种包含完整位置信息的语义分割。然而,场景图像中的文本实例通常彼此非常接近,使得它们很难通过语义分割来分离。因此,需要实例分割来解决此问题。本文提出了一种基于实例分割的新型场景文...

Apache Ranger:统一授权管理框架_javastart的博客-程序员宝宝

Apache Ranger:统一授权管理框架by 伊布May 12, 2016in Tech1、功能支持组件用户/组管理授权审计2、机制组件plugin前一篇文章介绍了hive的授权模型和spark支持hive的现状,可以看到目前授权管理各自为政:HDFS,hive,yarn,storm等都有自己的授权模型,需要到具体产品下进行修

电导增量法matlab,用s函数编写最大功率跟踪(电导增量法)_guenchi的博客-程序员宝宝

如何用S函数编写光伏电池的最大功率跟踪(电导增量法)仿真没有错误就是结果不对,求助各位大侠。输入为V,I输出为Dref,3个状态变量。function [sys,x0,str,ts] = s_MPPT2(t,x,u,flag)% The general form of an M-File S-function syntax is:% [SYS,X0,STR,TS] = SFUNC(...

c++ std::thread lambda_后知后觉的博客-程序员宝宝

使用lambda的时候要注意变量生命周期的变化: for (int i =0; i &lt; 5; i++) { int temp = i; std::this_thread::sleep_for(std::chrono::seconds(1)); std::thread([&amp;](){ std::thread::id tid = std::this_thread::get_id(); cout &lt;&

matlab插值龙格实验,实验二 拉格朗日插值龙格现象.doc_陈安研究员的博客-程序员宝宝

实验二 拉格朗日插值龙格现象汕 头 大 学 实 验 报 告学院: 工学院 系: 计算机系 专业: 计算机科学与技术 年级: 2010姓名: 林金正 学号: 2010101032 完成实验时间: 5月24日一.实验名称:拉格朗日插值的龙格现象二.实验目的:通过matlab处理,观察拉格朗日插值的龙格现象.三.实验内容:(1)学习matlab的使用(2)以实验的方式,...

忻州师范学院计算机系男女比例,忻州师范学院排名2021 山西排名第13全国排名第570..._黄心检的博客-程序员宝宝

忻州师范学院排名2019 山西排名第13全国排名第570每年的大学排名位次争议很大,虽然各大学校长口头上称不在乎、不看重,但实际上却卯足干劲,希望学校排名靠前,因为大学排名一定程度上体现了高校的办学成就。高考升学网本文介绍的主要是忻州师范学院的排名情况,主要包括忻州师范学院的最新全国排名、忻州师范学院本省的最新排名、以及忻州师范学院的最新相关新闻推荐。一、忻州师范学院成就简介忻州师范学院始建于19...

推荐文章

热门文章

相关标签