首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mybatis foreach 用法

foreach的主要用在构建in条件,它可以在SQL语句中进行迭代一个集合。 foreach元素的属性主要有 item,index,collection,open,separator,close。...●item:表示集合每一个元素进行迭代时的别名, ●index:指 定一个名字,用于表示在迭代过程,每次迭代到的位置, ●open:表示该语句以什么开始, ●separator:表示在每次进行迭代之间以什么符号作为分隔...在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况: 如果传入的是单参数且参数类型是一个List...,当然单参数也可 UPDATE sys_org SET delete_flag=1 WHERE id IN #{id}

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mybatis之foreach用法

    mybatis之foreach用法 在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreachforeach...index:在list和数组,index是元素的序号,在map,index是元素的key,该参数可选 open:foreach代码的开始符号,一般是(和close=")"合用。...源码分析 由于官方文档对这块的使用,描述的比较简短,细节上也被忽略掉了(可能是开源项目文档一贯的问题吧),也使用不少同学在使用遇到了问题。...特别是foreach这个函数,collection属性做什么用,有什么注意事项。由于文档不全,这块只能通过源代码剖析的方式来分析一下各个属性的相关要求。...但对于其名称的要求,Mybatis在实现还是有点不好理解的,所以需要特别注意这一点。

    1.2K10

    mybatis高级foreach用法

    一、foreach元素的属性 collection: 需做foreach(遍历)的对象,作为入参时,list、array对象时,collection属性值分别默认用"list"、"array"代替,Map...keyName”)注解来设置自定义collection属性值,设置keyName后,list、array会失效; item: 集合元素迭代时的别名称,该参数为必选项; index: 在list、array,...但是在Map,index为遍历元素的key值,该参数为可选项; open: 遍历集合时的开始符号,通常与close=")"搭配使用。...> 使用默认属性值list作为keyname 对应的Dao的Mapper文件是: public List selectByIds(...使用默认属性值array作为keyname 对应的Dao的Mapper文件是: public List selectByIds(int[] userIds); xml文件代码片段: <

    2.5K50

    从架构角度看MyBatis及foreach用法小结

    架构需要变化的部分,一定要能够非常清晰地被识别出来。 若架构某部分发生变化,则变化不会影响到其它部分。 若架构某部分需要扩展,则该扩展也不会影响到其它部分。...foreach foreach标签可以对数组、Map或实现了Iterable接口(如List、Set)的对象进行遍历。...foreach标签概述 foreach标签包含以下属性: collection:必填,值为要迭代循环的属性名。这个属性值的类型有很多。 item:变量名,值为从迭代对象取出的每一个值。...foreach使用场景小结: foreach实现in集合 场景1:只对一个属性进行批量匹配 foreach实现in集合(或数组)是最简单和常用的一种情况。...实现动态update 当foreach处理的参数是Map类型时,foreach标签的index属性值对应的不是索引值,而是Map的key,利用这个key可以实现动态UPDATE 此处只是聊下foreach

    1.3K40

    Java集合框架(一)—— Collection、Iterator和Foreach用法

    1.Java集合概述   在编程,常常需要集中存放多个数据。当然我们可以使用数组来保存多个对象。...如上图所示显示了Map接口的众多实现类,这些实现类在功能、用法上存在一定的差异,但他们都有一个功能特征:Map保存的每项数据都是key-value对,也就是由key和value两个值组成。...从上图可以看出,如果访问List集合的元素,可以直接根据元素的索引来访问;如果需要访问Map集合的元素,可以根据每项元素的key来访问其value;如果希望访问Set集合的元素,则只能根据元素本身来访问...使用foreach循环遍历集合元素   除了可以使用Iterator类迭代访问Collection集合里的元素外,也可以使用foreach循环来迭代访问集合元素,而且更加便捷如下: public class...books.remove(book); } System.out.println(o); } } }    如上所示,同样,当使用foreach

    1.1K90

    mybatis map foreach_while的三个用法

    MyBatis循环Map 今天遇到一个比较特殊的业务,需要对传入的Map数据在映射文件中进行遍历,在之前的学习,我们也知道MyBatis有默认对集合的操作list 和 array ,但是没有默认的 map...,所有不能直接写 collection=“map” ,如果这么处理,它会当成是根据 map.get(“map”) 获取传递value只,大部分情况下是一个map是不会有“map”这个key的,于是就是报错...> 其实本质就是使用的Map.Entiy对象的属性,自己回顾一下Java对Map的遍历方式有几种 1.3 KEY获取VALUE 2.Map高级用法 MyBatis嵌套循环map的高级用法:假如参数类型是这么一个类型结构...,而in的数据是Map的value Map> map = new HashMap(); List nameList = new ArrayList

    92020

    Java的增强 for 循环 foreach

    foreach 是 Java 的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理。能够提高性能,并减少代码出错的几率。...在 Java 还有比如 泛型、自动拆箱、自动装箱、内部类、枚举等等。   foreach 是用来对数组或者集合进行遍历的语法。...循环实际上还是用的普通的 for 循环      2、对于集合,foreach 循环实际上是用的 iterator 迭代器迭代 注意:如果我们想一边迭代,一边删除集合的元素,如下:     List...原因:当迭代器运行的时候,在当前线程 A ,会单独的创建一个线程 B。A 负责继续迭代,B 线程负责删除。B 线程每次都会去检查 A 线程的元素是否相同,如果不是就会报错 ?...因为上面删除的方法是 使用 Collection(ArrayList 的父类) 集合的 remove()方法。该方法只能从集合删除元素,不能把迭代器的元素也删除了。

    3K90
    领券