mybatis如何把一个List<String>作为select查询的参数?

就比如说我要select这个list集合中包含的字段的值,我该怎么做?
select

#{item,jdbcType=VARCHAR}

from bus_bitem
where proc_inst_id = #{var.processInstanceId,jdbcType=VARCHAR}

    这样写就一直报错

4个回答

select
foreach items="o" colleaction="list" index="index" open="" separator="," close="" >
#{list[${index}],jdbcType=VARCHAR}
</foreach
from table
Mybatis的foreach使用在select子句中时要这样写,你试一下,我没有测试

qq_43632454
qq_43632454 回复qq_40453068: 嗯,意思时一样的,这里不能使用#{}占位符,Mybatis无法识别
一年多之前 回复
qq_40453068
XFour837 谢谢你,不过我已经解决了,可以使用${item}代替#{item}将值直接拼接进sql
一年多之前 回复

中间的foreach标签被弄掉了。。。

select
<foreach items="o" colleaction="list" open="" separator="," close="" >
#{o}
</foreach>
from table
把两个斜杠去掉
难道不是这样写吗?随便就可以百度到的啊,这样做的话要先判断list的值,保证不是一个空的list

qq_37129624
ghq-yes 回复qq_40453068: 你把错误贴出来看下,是不是找不到list对象啊
一年多之前 回复
qq_40453068
XFour837 报错。。。
一年多之前 回复

直接上干货 添加一个引用 还可以重复利用

<sql id="whereConditions">
<dynamic prepend="where">
<isNotEmpty prepend="and" property="interceptTypeList">
<iterate property="interceptTypeList" open="(" conjunction=" or "   close=")">
                    intercept_type = #interceptTypeList[]#
</iterate>
</isNotEmpty>
</dynamic> 
</sql>
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐