mybatis 返回Map的key大小写问题

在使用mybatis的时候,经常会用到resultType=“map” 返回map类型的数据。发现默认返回的都是小写的,无论你在sqlmap.xml中如何定义大小写,返回到前台都会被无情的改成小写,具体mybatis是如何考虑的,没有研究过。但确实发现有这样的问题(或许看了源码并理解了mybatis开发者的用意之后会发现,这并不是问题)。

       但是今天遇到一个需求,返回到前台后的所有数据的属性必须都是驼峰式的格式,明显默认的mybatis的map返回形式是不满足要求,所以在网上查了一下(其实早该网查一下的,遇到问题就要有要去及时解决的想法,不然个人能力也很难提升,这样遇到问题及时解决,也减少了返工的可能性,所以大家共勉),没想到这个问题这么简单,很快就找到了答案.答案是在这个地址发现的,大家可以参考下:http://blog.csdn.net/werewr342352321df/article/details/11892755;文章的主旨大意就是将需要返回的列起一个别名,并且将别名包含在引号内;亲测有效。下面是上述链接的内容:

mybatis resultType="map"

mybatis通常情况都是用javabean作为resultType的对象,但是有时也可以使用map。

并且可以把默认大写key改为小写。

mybatis返回HashMap结果类型与映射  

Xhtml代码 
  1. <!-- 返回HashMap结果 类型-->  
  2.     <!-- 如果想返回JavaBean,只需将resultType设置为JavaBean的别名或全限定名 -->  
  3.     <!-- TypeAliasRegistry类初始化时注册了一些常用的别名,如果忘记了别名可以在这里面查看 -->  
  4.     <select id="selectBlogRetHashMap" parameterType="int" resultType="map">  
  5.         SELECT id AS "id", title AS "title", content AS "content" FROM Blog WHERE id = #{id}  
  6.     </select>  

测试代码:

Java代码 
  1. /** 
  2.      * 测试返回HashMap 
  3.      */  
  4.     @SuppressWarnings("unchecked")  
  5.     @Test  
  6.     public void testSelectBlogRetHashMap() {  
  7.         SqlSession session = sqlSessionFactory.openSession();  
  8.         HashMap<String,Object> blog = (HashMap<String,Object>) session.selectOne(  
  9.                 "cn.enjoylife.BlogMapper.selectBlogRetHashMap", 15);  
  10.         session.close();  
  11.         System.out.println(blog.get("title"));  
  12.     }  

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MyBatis中,默认情况下,不区分对待Map中的key大小写。这意味着,无论你在查询结果中使用的是大写字母、小写字母或者大小写混合,MyBatis都会将其当作相同的key对待。[2] 然而,如果你希望在处理Map返回结果时区分大小写,你可以通过自定义ObjectWrapperFactory来实现。你可以创建一个自定义的MapWrapper,将Map中的所有key都转换为小写,然后使用该自定义的ObjectWrapperFactory来处理Map返回结果。这样,MyBatis在处理Map时就会区分大小写了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mybatis-查询返回map中部分字段不区分大小写](https://blog.csdn.net/w2006009/article/details/103295534)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MyBatis返回Map键值对数据Key大小写问题](https://blog.csdn.net/Devilli0310/article/details/104073993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值