首先我们要明白的是foreach的本质就是把数据库能执行的sql在xml中按照一定语法来进行拼接,所以拼接之前,我们了解一下foreach标签中几个常见元素的作用

1.collection

‌List或Array‌:如果传入的参数类型是List或Array,collection属性的默认值分别是list和array。如果需要自定义集合名称。

‌Map‌:如果传入的参数是Map,collection属性可以指定遍历Map的keys、values或entrySet

2.item

集合遍历中每一个元素的别名

3.open

拼接sql时最前面拼接的字符串

4.separator

拼接sql时候两个元素之间的分隔字符串

5.close

拼接sql时最后面拼接的字符串

6.index

index‌:在List或Array中,index为元素的序号索引;在Map中,index为遍历元素的key值。

举一个简单的例子

一个简单的sql

select * from blog where title is not null and (id=1 or id=2 or id=3)

1.我们使用map集合作为参数实现拼接

<select id="queryBlogForeach" parameterType="map" resultType="blog"> select * from blog <where> title is not null <foreach collection="ids" item="id" open="and (" separator="or" close=")"> id=#{id} </foreach> </where> </select>

2.我们使用list集合作为参数实现拼接

select * from blog

title is not null

id=#{id}

Mybatis中foreach的使用的更多相关文章

  1. mybatis中foreach的用法(转)

    foreach一共有三种类型,分别为List,[](array),Map三种. foreach属性 属性 描述 item 循环体中的具体对象.支持属性的点路径访问,如item.age,item.inf ...

  2. mybatis中foreach使用

    mybatis中的<foreach collection="list" item="item" index="index" open= ...

  3. 谈一下思考,关于mybatis中<foreach collection="list">中list得来的原因 没看到官方说明

    <foreach> 是在sql语句中进行多个id查询 时用到的,因为mybatis代替jdbc和hibernate, 使用 在xml文件中编写sql语句,这是一个标签文件.然后在 dao层 ...

  4. mybatis 中 foreach 的性能问题及调优

    1.mybatis中最初的sql语句 SELECT 参数1, 参数2, 参数3 FROM 表 WHERE 条件参数1 in <foreach item="item" inde ...

  5. mybatis中foreach参数过多效率很慢的优化

    foreach 后面in 传入的参数有1万条,#和$是有效率区别的,$的效率远高于#,上篇文章做了比较. 但没达到我的理想结果. 1. 更改方式,把foreach 去掉,改成拼装方式, 参数直接拼装成 ...

  6. MyBatis中foreach循环的用法

    一.在了解foreach之前,先了解一下mybatis传入参数及parameterType 1.我们在Dao层向对应的mapper.xml文件传递参数时,可以传递的参数有: ①.基本数据类型(如int ...

  7. mybatis 中 foreach collection的三种用法(转)

    文章转自 https://blog.csdn.net/qq_24084925/article/details/53790287 oreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集 ...

  8. mybatis中foreach使用方法

    作者:学无先后 达者为先 作者:偶尔记一下 foreach一共有三种类型,分别为List,[](array),Map三种. 下面表格是我总结的各个属性的用途和注意点. foreach属性 属性 描述 ...

  9. mybatis 中 foreach collection的三种用法

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

  10. mybatis中<foreach>标签的使用

    标签太多,记一下不是特别常用的标签~留着脑袋瓜不机灵的时候看! <foreach>标签  该标签的作用是遍历集合类型的条件 <select id="countByUserL ...

随机推荐

  1. equals与hashCode关系梳理

    目录 equals用法 hashCode用法 总结 为什么一个类中需要两个比较方法 为什么重写 equals 方法时必须同时重写 hashCode 方法? Reference 这个并不是一个通用性编程 ...

  2. 使用Power Shell 拉取项目源代码

    使用 Power Shell 下载代码 工具:Power Shell(win10 自带) 新建源码的存放地址 1.使用 CD 命令进入文件夹 2.使用 git clone 命令拉取代码 git 命令: ...

  3. P10789 [NOI2024] 登山

    思路: 我们可以对于每个 \(i\) 找到它能跳到的最远的点和最近的点,倍增求一下 \(k\) 级祖先即可,令 \([l_i,r_i]\) 新表示 \(i\) 能跳到其祖先中深度在 \([l_i,r_ ...

  4. java-GUI编程之布局类型介绍

    java使用AWT和Swing相关的类可以完成图形化界面编程,其中AWT的全称是抽象窗口工具集(Abstract Window Toolkit),它是sun公司最早提供的GUI库,这个GUI库提供了一 ...

  5. 神经网络之卷积篇:详解卷积神经网络示例(Convolutional neural network example)

    详解卷积神经网络示例 假设,有一张大小为32×32×3的输入图片,这是一张RGB模式的图片,想做手写体数字识别.32×32×3的RGB图片中含有某个数字,比如7,想识别它是从0-9这10个数字中的哪一 ...

  6. CSS & JS Effect – Tooltip

    介绍 Tooltip 长这样 它用 popup 的方式来详细描述一个主体. 比如某个 icon 代表着什么. 参考 YouTube – How To Make Tooltips With Only C ...

  7. CSS – 实战 Color

    前言 之前 W3Schools 学习笔记 (1) 也记入过 Color, 这篇整理一下在网页开发中, 颜色是如果被处理的. 网页都有什么颜色? 网页篇幅最大的颜色, 通常是来自图片, 不管是背景图, ...

  8. IDEA如何查看每一行代码的提交记录(人员,时间)

    前言 我们在使用IDEA开发时,一般需要使用git来管理我们的代码,而且大家协同开发.   有时候,我们在开发的时候,经常需要看一下当前的代码时谁开发的,除了看类上面的作者外,更精细的方式是看每一行代 ...

  9. Nacos 开启鉴权设置

    Nacos 开启鉴权设置 # 开启鉴权 nacos.core.auth.enabled=true nacos.core.auth.system.type=nacos # 开启鉴权之后,你可以自定义用于 ...

  10. Vue 调用后台接口导出Excel

    vue 调用后台接口生成 Excel 咱也不会前端,就是现学现卖. Js export function exportOnlyB(reportId) { return request({ url: & ...