mybatis foreach @Param("*")

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章