Mybatis中遍历List、Set、Array、Map

关于Mybatis中遍历集合的整理


使用Mybatis多了,自然会碰见各种在Mapper文件遍历集合的问题,特整理一份记录以便查看。个人觉得Mybatis中的foreach标签属性 说清楚就ok了。

foreach中的各种属性整理如下(先从简单的说):


index : 指定一个名称,什么意思呢?就是和java中的标准for循环中的i是一个意思,我们定义成index,在语句中可以用#{index}取出对应的下标。既然是下标那就是从零开始啦。


open : 指定循环开始前的开始符一般就是“(”
close : 指定循环结束后的结束符一般就是“)”

ps –> 如果不指定 open close属性 mybatis默认不会添加,情景就是批量插入数据时,传入的参数为List泛型为map,由于批量插入时是这种格式: insert into(f1…fn) values(v1…vn),(m1…mn),(j1…jn)这时候如果定义 open close 就会出错。


separator :循环中元素的分割符一般指定为“,”


item :是循环中遍历出的元素,如果传入的参数为list/set/array,item是list/set/array中的元素,如果传入的是list泛型为map的 item就是map的entry,需要通过key来取value,如果key为纯字符也就是没有“.”、“:”等特殊字符可以直接用“.”来取值,如果有请用”[]”取值 []中的字段不要加引号、不要引号、不要引号。


collection : 终于说到它了,关于这个网上有很多资料,总是一二三种情况。在我看来我们完全没有必要去记那些规则,如果是多个参数mybatis会封装成map ,该属性的值就设置为map中集合的key值就可以了,如果是单参数建议也封装进map就ok了 ,世界一下就清净了。


ps –>为什么要用map来封装参数呢,想想那天业务需要你加几个参数的时候你要怎么处理呢。为啥要用set呢,因为去重。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值