mybatis向xml文件传递list参数
问题描述
前端传递给后端一个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的对象类型(必选)