我是靠谱客的博主 爱笑红牛,最近开发中收集的这篇文章主要介绍mybatis使用foreach遍历list集合或者array数组方式1. foreach参数解析2. array数组的类型3. list的类型4. 参考文献,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

1. foreach参数解析

  • item: 集合中元素迭代时的别名,该参数为必选
  • index: 在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选
  • open: foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。该参数可选
  • separator: 元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。该参数可选
  • close: foreach代码的关闭符号,一般是)和open="("合用。常用在in(),values()时。该参数可选。
  • collection: foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:
    • 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
    • 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
    • 如果使用Map封装了,collection的属性值为对应的Key

2. array数组的类型

UserMapper.java


List<User> getUserByIds02(Integer[] ids);

UserMapper.xml


<select id="getUserByIds02" resultType="com.example.practice.domain.User">
SELECT * FROM `user` u WHERE u.`id` IN
<foreach collection="array" index="index" item="item" open="(" separator="," close=")">#{item}</foreach>
</select>

3. list的类型

UserMapper.java


List<User> getUserByIds03(List<Integer> listIds);

UserMapper.xml


<select id="getUserByIds03" resultType="com.example.practice.domain.User">
SELECT * FROM `user` u WHERE u.`id` IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">#{item}</foreach>
</select>

4. 参考文献

Mybatis之foreach用法 List和Array,对象
mybatis 中 foreach collection的用法小结(三种)

最后

以上就是爱笑红牛为你收集整理的mybatis使用foreach遍历list集合或者array数组方式1. foreach参数解析2. array数组的类型3. list的类型4. 参考文献的全部内容,希望文章能够帮你解决mybatis使用foreach遍历list集合或者array数组方式1. foreach参数解析2. array数组的类型3. list的类型4. 参考文献所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部