<日积月累>Mybatis 传参为一个集合+一个参数

239 阅读1分钟

有时候,我们查询余军的传参为:一个集合+一个参数,这该怎们办呢,话不多说,开始上代码;

DAO层:

List<Menu> listMenueByIdAndLevel(@Param(“ids)List<Integer> ids,@Param(“level”)Integer level);

SQL:

<select id=”listMenueByIdAndLevel” resultMap=”BaseResultMap”>
 SELECT * 
FROM menu
WHERE menu_Id IN 
 <foreach collection=”ids” open=”(” close=”)” separator=”,” item=”id”>
    #{id}
 </foreach>
AND menu_Level=#{level}
</select>

说明:

这是用到是foreach标签:

属性collection:

  1. 传参只是一个集合:list;
  2. 传参为一个数组:array;
  3. 传参为一个map:map;
  4. 传参为一个dao接口指定的值,比如上面的ids(这里我就是用的这种方法);
  • open: 表示语句开始
  • close:表是语句结束
  • separator:每次分隔时的符号
  • item:遍历时获取元素的别名