阅读量:1
在Mybatis中传递集合的方法主要有两种方式:使用List或者使用Map。
- 使用List传递集合:在Mapper接口中定义方法时,可以直接传入List作为参数,Mybatis会自动将List中的元素作为参数传递给SQL语句。例如:
public List<User> selectUserByIds(List<Integer> ids);
在XML配置文件中,可以使用foreach标签来遍历List参数,如下所示:
<select id="selectUserByIds" resultType="User"> SELECT * FROM user WHERE id IN <foreach item="item" index="index" collection="ids" open="(" separator="," close=")"> #{item} </foreach> </select>
- 使用Map传递集合:可以将集合封装成Map形式传递给SQL语句。在Mapper接口中定义方法时,可以传入Map作为参数,其中Map的key可以自定义,值为集合类型。例如:
public List<User> selectUserByIds(Map<String, Object> map);
在XML配置文件中,可以通过Map的key来获取集合参数,如下所示:
<select id="selectUserByIds" resultType="User"> SELECT * FROM user WHERE id IN <foreach item="id" collection="ids" open="(" separator="," close=")"> #{id} </foreach> </select>
这两种方式都可以有效地传递集合参数给SQL语句,在实际开发中根据需求选择合适的方式。