mybatis map foreach遍历

mybatis 遍历 map 实例

map 数据如下 Map<String,List<Long>>.

 

测试代码如下:

public void getByMap(){
        Map<String,List<Long>> params=new HashMap<String, List<Long>>();
        List<Long> orgList=new ArrayList<Long>();
        orgList.add(10000003840076L);
        orgList.add(10000003840080L);
    List</span>&lt;Long&gt; roleList=<span style="color: rgba(0, 0, 255, 1)">new</span> ArrayList&lt;Long&gt;<span style="color: rgba(0, 0, 0, 1)">();
    
    roleList.add(</span>10000000050086L<span style="color: rgba(0, 0, 0, 1)">);
    roleList.add(</span>10000012180016L<span style="color: rgba(0, 0, 0, 1)">);
    
    params.put(</span>"org"<span style="color: rgba(0, 0, 0, 1)">, orgList);
    params.put(</span>"role"<span style="color: rgba(0, 0, 0, 1)">, roleList);
    
    List</span>&lt;BpmDefUser&gt; list=<span style="color: rgba(0, 0, 0, 1)"> bpmDefUserDao.getByMap(params);
    System.out.println(list.size());
    
}</span></pre>

 

dao 代码如下:

public List<BpmDefUser> getByMap(Map<String,List<Long>> map){
        Map<String,Object> params=new HashMap<String, Object>();
        params.put("relationMap", map);
        return this.getBySqlKey("getByMap", params);
}</span></pre>

xml 代码如下:

<select id="getByMap" resultMap="BpmDefUser">
        <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">foreach </span><span style="color: rgba(255, 0, 0, 1)">collection</span><span style="color: rgba(0, 0, 255, 1)">="relationMap"</span><span style="color: rgba(255, 0, 0, 1)"> index</span><span style="color: rgba(0, 0, 255, 1)">="key"</span><span style="color: rgba(255, 0, 0, 1)">  item</span><span style="color: rgba(0, 0, 255, 1)">="ent"</span><span style="color: rgba(255, 0, 0, 1)"> separator</span><span style="color: rgba(0, 0, 255, 1)">="union"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span><span style="color: rgba(0, 0, 0, 1)">
            SELECT *
            FROM BPM_DEF_USER
            where  RIGHT_TYPE=#{key}
            and OWNER_ID in 
            </span><span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">foreach </span><span style="color: rgba(255, 0, 0, 1)">collection</span><span style="color: rgba(0, 0, 255, 1)">="ent"</span><span style="color: rgba(255, 0, 0, 1)">  item</span><span style="color: rgba(0, 0, 255, 1)">="id"</span><span style="color: rgba(255, 0, 0, 1)"> separator</span><span style="color: rgba(0, 0, 255, 1)">=","</span><span style="color: rgba(255, 0, 0, 1)"> open</span><span style="color: rgba(0, 0, 255, 1)">="("</span><span style="color: rgba(255, 0, 0, 1)"> close</span><span style="color: rgba(0, 0, 255, 1)">=")"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span><span style="color: rgba(0, 0, 0, 1)">
                #{id}
            </span><span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">foreach</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
        <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">foreach</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
    
<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">select</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>

index 作为 map 的 key。item 为 map 的值,这里使用了嵌套循环,嵌套循环使用 ent。