在使用mybatis的时候,经常会用到resultType=“map” 返回map类型的数据。发现默认返回的都是小写的,无论你在sqlmap.xml中如何定义大小写,返回到前台都会被无情的改成小写,具体mybatis是如何考虑的,没有研究过。但确实发现有这样的问题(或许看了源码并理解了mybatis开发者的用意之后会发现,这并不是问题)。
但是今天遇到一个需求,返回到前台后的所有数据的属性必须都是驼峰式的格式,明显默认的mybatis的map返回形式是不满足要求,所以在网上查了一下(其实早该网查一下的,遇到问题就要有要去及时解决的想法,不然个人能力也很难提升,这样遇到问题及时解决,也减少了返工的可能性,所以大家共勉),没想到这个问题这么简单,很快就找到了答案.答案是在这个地址发现的,大家可以参考下:http://blog.youkuaiyun.com/werewr342352321df/article/details/11892755;文章的主旨大意就是将需要返回的列起一个别名,并且将别名包含在引号内;亲测有效。下面是上述链接的内容:
mybatis resultType="map"
mybatis通常情况都是用javabean作为resultType的对象,但是有时也可以使用map。
并且可以把默认大写key改为小写。
mybatis返回HashMap结果类型与映射
Xhtml代码
- <!-- 返回HashMap结果 类型-->
- <!-- 如果想返回JavaBean,只需将resultType设置为JavaBean的别名或全限定名 -->
- <!-- TypeAliasRegistry类初始化时注册了一些常用的别名,如果忘记了别名可以在这里面查看 -->
- <select id="selectBlogRetHashMap" parameterType="int" resultType="map">
- SELECT id AS "id", title AS "title", content AS "content" FROM Blog WHERE id = #{id}
- </select>
测试代码:
Java代码
- /**
- * 测试返回HashMap
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testSelectBlogRetHashMap() {
- SqlSession session = sqlSessionFactory.openSession();
- HashMap<String,Object> blog = (HashMap<String,Object>) session.selectOne(
- "cn.enjoylife.BlogMapper.selectBlogRetHashMap", 15);
- session.close();
- System.out.println(blog.get("title"));
- }