mybatis传入多个list集合做参数,很多文章的介绍都是不能实现的,千篇一律的复制,有很大的误导性,这里说一下如何实现:
这里建议你传递对象过来,比如Person对象,里面加入List list1; List list2;….这样,把对象传到mapper.xml中时,取法如下:
dao.java
List<User> find(@Param("person")Person person,@Param("name")String name);
mapper.xml
<if test="person.list1 != null">
and id in
<foreach collection="person.list1" index="index" item="item" open="(" separator="," close=")">
'${item}'
</foreach>
</if>
<if test="person.list2 != null">
and id in
<foreach collection="person.list2" index="index" item="item" open="(" separator="," close=")">
'${item}'
</foreach>
</if>
记录
<select id="getEidList" resultType="java.lang.String">
SELECT efe.eid from ent_file_emergent_industry efe,ent_file ef
where 1 =1
and efe.eid = ef.eid
and efe.code in (SELECT code from dict_emergent_industry where type = 2 and remark in (
<foreach collection="param.customRemarkOrCodeList" index="index" item="item" open="(" separator="," close=")" >
'${item}'
</foreach>
))
and ef.plat_from = '${param.platFrom}'
and ef.delete_flag = 0
</select>