foreach

另外一个动态 SQL 通用的必要操作是迭代一个集合,通常是构建在 IN 条件中的。比如:

<select id="selectPostIn" resultType="domain.blog.Post">

SELECT *

FROM POST P

WHERE ID in

<foreach item="item" index="index" collection="list"

open="(" separator="," close=")">

#{item}

</foreach>

</select>

foreach 元素是非常强大的,它允许你指定一个集合,声明集合项和索引变量,它们可

以用在元素体内。它也允许你指定开放和关闭的字符串,在迭代之间放置分隔符。这个元素

是很智能的,它不会偶然地附加多余的分隔符。

注意:你可以传递一个 List 实例或者数组作为参数对象传给 MyBatis。当你这么做的时

候,MyBatis 会自动将它包装在一个 Map 中,用名称作为键。List 实例将会以“list”

作为键,而数组实例将会以“array”作为键。

demo1

传递生产的id为

List<Integer> ids=Arrays.asList(StringUtil.parseInteger(id.split(","), 0));

其中id为34 35

service.delete(ids);

<update id="delete" parameterType="java.util.List">update a set is_delete = 1 where id in<foreach collection="list" item="id" index="index" open="(" separator="," close=")">#{id,jdbcType=INTEGER}</foreach></update>

转载于:https://blog.51cto.com/congwa/1290039

mybatis中foreach相关推荐

  1. MyBatis中foreach元素用法解析

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

  2. MyBatis中foreach用法

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

  3. mybatis 中 foreach collection的三种用法

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

  4. mybatis中foreach标签详解

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

  5. Mybatis中foreach的三种用法

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

  6. mybatis使用foreach遍历list集合或者array数组方式

    向sql传递数组或List,mybatis使用foreach解析:foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合:foreach元素的属性主要有item,index,co ...

  7. Mybatis中的foreach用法

    Mybatis中的foreach用法 目录 Mybatis中的foreach用法 元素属性 List对象集合查询 根据数组中的Id删除 update修改 元素属性 item: 集合中元素迭代时的别名, ...

  8. mybatis中的foreach条件参数过多时,#和$效率比较

    背景 最近对mybatis的in查询做优化时,看到一个有趣的方法,使用外部拼接好查询条件,然后用$符合,直接替代了mybatis内部foreach,特地在本地上做个评测 看到一篇文章,当foreach ...

  9. 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)

    视频地址:http://edu.51cto.com/sd/be679 动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的 ...

最新文章

  1. 创建型模式--(再论)单例模式
  2. idea 使用正则表达式 进行匹配替换
  3. 80端口被system(pid=4)占用的解决方法
  4. element中el-image怎样显示图片
  5. ASP.NET Core 网站在Docker中运行
  6. elementUI-添加自定义图标
  7. postfix报错postfix: fatal: parameter inet_interfaces: no local interface found for ::1
  8. ListObject 多条件去重
  9. OpenCV中直方图对比
  10. Python的安装路径
  11. PHP 8 中确认支持 JIT!
  12. 数据结构之各排序算法
  13. 【Java并发编程】—–“J.U.C”:ArrayBlockingQueue
  14. 如何下载Xcode DMG或XIP文件?
  15. 现代ADC中采样率往往远低于输入信号带宽
  16. 数字图像处理(1): 数字图像处理领域应用——电磁波谱 可见光
  17. adb-monkey-log分析
  18. python中search函数用法_查找匹配函数FIND和SEARCH的基本用法
  19. mongodb副本集集群中节点出现recovering状态解决办法
  20. 练习 用C语言编写一个程序,解释高等数学中的映射、单射和一一映射,并表示为函数。

热门文章

  1. nginx css 304 导致图片丢失_Nginx 从入门到实战
  2. Python中相见恨晚的技巧(记得收藏)
  3. step在c语言中什么作用,C语言step-by-step(二)(数据类型)
  4. 增加点击量的软件_老板总吐槽销售分析报表又多又丑?你一定没用BI软件
  5. android 关闭jack_Android7.0 配置JACK支持多用户同时编译
  6. 简单探讨JavaScript 与 TypeScript之间的联系
  7. 如何利用 KLEE 符号执行引擎挖掘软件漏洞
  8. 计算机上机报告-origin,Origin 8上机练习1
  9. 关于学习Python的一点学习总结(21->并行迭代)
  10. 蓝桥杯知识点归纳-java-API