mybatis sql in 查詢

  1. 當查詢的參數只有一個時
    findByIds(List ids)
    如果參數的類型是List, 則在使用時,collection屬性要必須指定爲 list
<select id="findByIdsMap" resultMap="BaseResultMap">
    Select
    <include refid="Base_Column_List" />
    from jria where ID in
    <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>

findByIds(Long[] ids)
如果參數的類型是Array,則在使用時,collection屬性要必須指定爲 array

<select id="findByIdsMap" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from tabs where ID in
    <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>

2 當查詢的參數有多個時,例如 findByIds(String name, Long[] ids)
這種情況需要特別注意,在傳參數時,一定要改用Map方式, 這樣在collection屬性可以指定名稱
下面是一個示例

Map<String, Object> params = new HashMap<String, Object>(2);
params.put("name", name);
params.put("ids", ids);
mapper.findByIdsMap(params);
<select id="findByIdsMap" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from tabs where ID in
    <foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章