<foreach collection="" close="" index="" item="" open="" separator="">
...
</foreach>
解释这几个标签属性:
/**
*传入列表
*
*/
public List<Student> findStudentByList(List<Integer> ids);
说明:以List且泛型为Student实体类来接收查询结果,入参为ids,多个Integer型id组成的列表。
<select id "findStudentByList" parameterType="Integer" resultType="com.ali.entity.Student">
select id,st_name,st_age from t_student where id in
<foreach collection="list" item="item_id" open"(" separator="," close=")">
#{item_id}
</foreach>
</select>
说明:select标签,id为对应mapper接口类里面的方法名,resultType对应结果类型的entity类,foreach标签中的属性定义说明:传入集合类型为列表,每一个元素迭代时的别名为item_id,该语句以“(”开始,每次进行迭代之间以“,”作为分隔符,并以“)”为结束。
/**
*传入数组
*
*/
public List<Student> findStudentByArray(Integer[] ids);
说明:入参类型为Integer类型数组对象ids,返回类型为Student泛型的列表。
<select id="findStudentByArray" parameterType="Integer" resultType="com.ali.entity.Student">
select id,st_name,st_age from t_student where id in
<foreach collection="array" item="item_id" open"(" separator="," close=")">
#{item_id}
</foreach>
</select>
说明:select标签,id为对应mapper接口类里面的方法名,resultType对应结果类型的entity类,foreach标签中的属性定义说明:传入集合类型为列表,每一个元素迭代时的别名为item_id,该语句以“(”开始,每次进行迭代之间以“,”作为分隔符,并以“)”为结束。
/**
*传入哈希
*
*/
public List<Map> findStudentByMap(Map<String,Object> ids);
说明: mapper的接口文件,入参:键为String值为Object的Map类型的对象ids
<select id="findStudentByMap" parameterType="Map" resultType="com.ali.entity.Student">
select id,st_name,st_age from t_student where id in
<foreach collection="ids" item="item_id" open="(" separator="," close=")">
#{item_id}
</foreach>
</select>
特别注意:
以上就是传入集合、数组参数的时候,遍历这两种对象里面的元素内容。所用的例子,可用于检索查询的各种场景。