首先关于mybatis的foreach语句可以参考
http://mybatis.org/mybatis-3/zh/dynamic-sql.html
遇到了如下的DAO:
public interface CompanyReadDao {
List<Company> getCompanies(@Param("codes")List codes);
}
对应的xml文件应该配置成:<select id="getCompanies" resultMap="companyResult">
select * from company c where c.code in
<foreach collection="codes" item="item" index="index"
open="(" close=")" separator=",">
#{item}
</foreach>
</select>
注意红色部分
mybaits会把list或者数组转成map,其中的key默认是list,但是如果你在dao中注解了@Param("name"),那么mybatis就会把key设置为"name",而不是list。
也就是如果DAO如下:
public interface CompanyReadDao {
List<Company> getCompanies(List codes);
}
对应的xml文件应该配置成:<select id="getCompanies" resultMap="companyResult">
select * from company c where c.code in
<foreach collection="list" item="item" index="index"
open="(" close=")" separator=",">
#{item}
</foreach>
</select>