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值,最终测试是没有任何问题的。