传的是List列表
接口代码
List<Emp> findEmpByDeptnos(List<Integer> deptnos);
xml配置代码
<select id="findEmpByDeptnos" resultType="Emp" parameterType="list">
SELECT * FROM emp e
WHERE e.deptno IN
<foreach collection="list" item="deptno" open="(" separator="," close=")">
#{deptno}
</foreach>
</select>
传的是Array数组
接口代码
List<Emp> findEmpByDeptnos(Integer[] deptnos);
xml配置代码
<select id="findEmpByDeptnos" resultType="Emp" parameterType="int">
SELECT * FROM emp e
WHERE e.deptno IN
<foreach collection="array" item="deptno" open="(" separator="," close=")">
#{deptno}
</foreach>
</select>
传的是Map
接口代码
List<Emp> findEmpByDeptnos(Map<String,List<Integer>> deptnos);
xml配置代码
<select id="findEmpByDeptnos" resultType="Emp" parameterType="map">
SELECT * FROM emp e
WHERE e.deptno IN
<foreach collection="myKey" item="deptno" open="(" separator="," close=")">
#{deptno}
</foreach>
</select>
collection属性总结
- 如果传入的参数是List,则填写list
- 如果传入的参数是数组形式,则填写array
- 如果是多参数传参,传的是map,则填写列表的键key