Mybatis的参数为数组时使用foreach

导读:本篇文章讲解 Mybatis的参数为数组时使用foreach,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

  • collection:要做foreach的对象,作为入参时,List<?>对象默认用list代替作为键,数组对象有array代替作为键,Map对象用map代替作为键,该参数必选;
  • item:循环体中的具体对象,支持属性的点路径访问,该参数必选;
  • index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选;
  • open:foreach代码的开始符号,一般是(和close=”)”合用,该参数可选;
  • close:foreach代码的关闭符号,一般是)和open=”(“合用,该参数可选;
  • separator:元素之间的分隔符,例如在in()的时候,separator=”,”会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,该参数可选;

情况一:
Dao的方法:参数是一个数组类型的
在这里插入图片描述
其主要是在in条件中,可以在SQL语句中迭代一个集合;

	<select id="getStringByguid" resultType="java.lang.String">
			select guid from kjt_inventory
			where
			ORDERNO in
			<foreach collection="array" item="item" index="index" open="(" close=")" separator=",">
				#{item}
			</foreach>

	</select>

在这里插入图片描述

情况二:
Dao的方法:参数是一个List类型的
在这里插入图片描述
其主要是在in条件中,可以在SQL语句中迭代一个集合;

<select id="getStringByOrder" resultType="java.lang.String">
	select
		orderno from kjt_inventory
	where
		id in
	<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
		#{item}
	</foreach>
</select>

只要就是collection改变了
在这里插入图片描述
情况三:
Dao的方法:参数是一个Map类型的
在这里插入图片描述
map的key(键)就是参数名,因此collection属性值就是传入的List或array对象在自己封装的map里面的key

<select id="getOrder" resultType="java.lang.String">
	select
		* from kjt_inventory
	where
	sku in
	<foreach collection="sku" item="item" index="index" open="(" close=")" separator=",">
		#{item}
	</foreach>
</select>

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83884.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!