mybatis获取map中的key和value

    方式一:

    dao接口

int updateByBatch(@Param("content") Map alreadySoldNumMap);
    mapper

  
        update COUPON_CATEGORY  
          
              
              
                 
                     when ID=#{key} then ALREADY_SOLD_NUM+#{content[${key}]}  
                
              
              
          
        where  

          
            ID=#{key}  
          
    
    这种方式#{content[${key}]}获取map中的value,传递的map中的key只能是String类型,如果是其他类型,得到的value是null。#{content[${key}]}还可以写成${content[key]}方式。

  
     ALREADY_SOLD_NUM=#{value}  
 

    方式二:如果传入的map的key要适用所有类型,可以使用下面的方式

                 遍历Map中的entrySet,然后把key扔进index里面,value扔进item中。

    例如:dao接口,map的key用Long类型

int updateByBatch(@Param("content") Map alreadySoldNumMap);

     mapper

  
        update COUPON_CATEGORY  
          
              
              
                 
                     when ID=#{key} then ALREADY_SOLD_NUM+#{value}  
                
              
              
          
        where  
          
            ID=#{key}  
          
    

参考博客: http://blog.csdn.net/clementad/article/details/55099432

    另附:

    在解决此问题的过程当中,使用的是测试类,可以就是在console中打印不出sql语句来。参考了这篇文章《mybatis结合log4j打印SQL日志》,找到了sql语句。

    小编使用的方法是直接调试出sql语句。SimpleExecutor.class在mybatis.jar包里面。

mybatis获取map中的key和value_第1张图片

你可能感兴趣的:(java)