mybatis获取map中的key和value
2017-08-21 13:57
281 查看
方式一:
dao接口
方式二:如果传入的map的key要适用所有类型,可以使用下面的方式
遍历Map中的entrySet,然后把key扔进index里面,value扔进item中。
例如:dao接口,map的key用Long类型
mapper
参考博客:http://blog.csdn.net/clementad/article/details/55099432
另附:
在解决此问题的过程当中,使用的是测试类,可以就是在console中打印不出sql语句来。参考了这篇文章《mybatis结合log4j打印SQL日志》,找到了sql语句。
小编使用的方法是直接调试出sql语句。SimpleExecutor.class在mybatis.jar包里面。
dao接口
int updateByBatch(@Param("content") Map<String, Integer> alreadySoldNumMap);mapper
<update id="updateByBatch" parameterType="java.util.Map"> update COUPON_CATEGORY <trim prefix="set" suffixOverrides=","> <trim prefix="ALREADY_SOLD_NUM = case" suffix="end,"> <foreach collection="content.keys" item="key" index="index"> when ID=#{key} then ALREADY_SOLD_NUM+#{content[${key}]} </foreach> </trim> </trim> where <!-- 循环key --> <foreach collection="content.keys" separator="or" item="key" index="index"> ID=#{key} </foreach> </update>这种方式#{content[${key}]}获取map中的value,传递的map中的key只能是String类型,如果是其他类型,得到的value是null。#{content[${key}]}还可以写成${content[key]}方式。
<!-- 循环value --> <foreach collection="content.values" separator="or" item="value" index="index"> ALREADY_SOLD_NUM=#{value} </foreach>
方式二:如果传入的map的key要适用所有类型,可以使用下面的方式
遍历Map中的entrySet,然后把key扔进index里面,value扔进item中。
例如:dao接口,map的key用Long类型
int updateByBatch(@Param("content") Map<Long, Integer> alreadySoldNumMap);
mapper
<update id="updateByBatch" parameterType="java.util.Map"> update COUPON_CATEGORY <trim prefix="set" suffixOverrides=","> <trim prefix="ALREADY_SOLD_NUM = case" suffix="end,"> <foreach collection="content.entrySet()" item="value" index="key"> when ID=#{key} then ALREADY_SOLD_NUM+#{value} </foreach> </trim> </trim> where <foreach collection="content.keys" separator="or" item="key" index="index"> ID=#{key} </foreach> </update>
参考博客:http://blog.csdn.net/clementad/article/details/55099432
另附:
在解决此问题的过程当中,使用的是测试类,可以就是在console中打印不出sql语句来。参考了这篇文章《mybatis结合log4j打印SQL日志》,找到了sql语句。
小编使用的方法是直接调试出sql语句。SimpleExecutor.class在mybatis.jar包里面。
相关文章推荐
- MyBatis循环获取Map中的key和value的方法
- mybatis中使用map类型参数,其中key为列名,value为列值
- JavaScript中获取Map集合中的key和value值(前提是:既不知道key为什么值,也不知道value有哪些值)
- java8 stream初试,map排序,list去重,统计重复元素个数,获取map的key集合和value集合
- Map.Entryset获取每个元素的Key,value
- foreach属性-动态-mybatis中使用map类型参数,其中key为列名,value为列值
- MyBatis查询两个字段,返回Map,一个字段作为key,一个字段作为value的实现
- mybatis如何遍历Map的key和value
- 如何同时获取Map的构成对应关系的key和value
- java里面获取map的key和value的方法
- Map 根据value 获取key
- 四种Map获取key和value值的方法,及对map中的元素进行排序
- java获取map中的最小KEY,最小VALUE
- 根据key获取map中的value值,如果该map为null或者为空,或者找不到传入key,或者类型不一致则返回空。
- map中根据value获取key
- Mybatis select返回值为map时,选取表字段的两列作为key,value
- 关于Map中key和Value的灵活获取(推荐给初学JAVA的受苦受难的兄弟姐妹们)
- 随机获取一个集合(List, Set)中的元素,随机获取一个Map中的key或value
- MyBatis使用@MapKey注解接收多个查询记录到Map中,以便方便地用get()方法获取字段的值
- js解析json,js转换json成map,获取map的key,value