mybatis向xml文件传递list参数

发布时间 2024-01-11 15:30:12作者: 成佛在西天

问题描述

  前端传递给后端一个json字符串,但其嵌套了一个list列表,xml文件里的SQL语句该如何书写?

 

解决方法

  利用foreach标签遍历列表

// 核心代码

<if test="item.type != null and item.type.size > 0">
	a.type in
	<foreach collection="item.type" item ="itemType" open="(" close=")" separator=",">
		#{itemType}
	</foreach>
</if>

  注:foreach标签内的变量要使用item指定的名称,而不要去错误使用了集合名称,否则相当于将集合复制几份

 

foreach 元素的属性

  • item:集合中元素迭代时的别名(必选)
  • index:用于表示在迭代过程中,每次迭代到的位置(可选)
  • open:开始符号,一般是(和close=")"合用。常用在in(),values()时(可选)
  • separator:元素之间的分隔符,在in()的时候,separator=","会自动在元素中间用“,“隔开,如in(1,2,)(可选)
  • close:关闭符号,一般是)和open="("合用。常用在in(),values()时(可选)
  • collection:要做foreach的对象类型(必选)