作为参数查询的实体类 里面存在一个String类型的集合
具体业务一个实体类作为查询参数 并且需要判断如果实体类里面的字段内容不为空就拼接查询操作
此处用到的mybatis的包含语句
此处只需要注意的是foreach中的collection字段 在使用单个参数 的时候可以直接指定类型
集合数据参数为 list
public List dynamicForeachTest(List ids);
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
4 #{item}
5 </foreach>
数组则对应array:
public List dynamicForeach2Test(int[] ids);
<foreach collection="array" index="index" item="item" open="(" separator="," close=")">
4 #{item}
5 </foreach>
如果数组或者集合是存在实体类中的一个变量或者是存在map中的一个value时
collection的取值则为实体类中的变量名称或者map中的key
集合可以使用.size()判断是否为空来实现mybatis动态sql的效果
<if test="types != null and types.size() > 0 "> and b1.typeId IN
<foreach collection="types" item="id" index="index" open="(" separator="," close=")">
#{id}
</foreach>
</if>