首先關於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>