Mybatis中遍历Map

mybatis中遍历map

之前搜了下,大部分人写的都是这样

<foreach collection="myMap.keys" item="key">
     set a= #{key} , b =  #{myMap[${key}]}
</foreach>

不知道时版本原因还是别的,我取到的value都是null,我的mybatis版本为3.4.2

真正的遍历方式
<update id="updateByMap" parameterType="java.util.Map">
        UPDATE table SET num =
            ( CASE
            <foreach collection="dataMap" item="map" index="key">
            WHEN id = #{key} THEN #{map.value}
            </foreach>
            end)
</update>

指定collection为map本身而非map的keyset,用index 获取key值,用item.value获取value值,最终测试是没有任何问题的。

你可能感兴趣的:(mybatis)