mybatis用resultType = map返回值中小写key会有重复的大写的key

Posted 6kuaifuji

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis用resultType = map返回值中小写key会有重复的大写的key相关的知识,希望对你有一定的参考价值。

问题描述:

mybatis 版本3.0.5 其他版本可能不存在这个问题,是可能哇 ,因为我遇到的项目是一个年代久远的项目。所以用的是3.0.5这个版本。

mybatis用resultType = map接查询的返回值,这时候如果sql写的是select  aaa  from ...................,那么返回值map中会出现 key为 aaa 和 AAA的两个值,他们的value

是一样的。

这时候你可能会想到查询sql起别名这个操作来解决这个问题,但是在这个版本下,起了别名也还是会有这个问题。

查询大佬博客然后看源码发现,这个版本中的源码就是小写的key然后自动在补一个大写的key进去,也有人说这个问题是这个版本的bug.

 技术图片技术图片

 

 

我的解决办法就是  sql用大写select AAA ......,然后拿出来再转一下

LinkedHashMap<String, String> map1 = new LinkedHashMap<String, String>();

for (Map.Entry<String, String> entry : map.entrySet()) {
map1.put(entry.getKey().toLowerCase(),String.valueOf(entry.getValue()));
}

以上是关于mybatis用resultType = map返回值中小写key会有重复的大写的key的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis 查询.resultType为Map,而某个字段是clob的,怎么搞定

mybatis返回一个count加一个字段该怎么设置返回resultType

Mybatis中的resultType和resultMap

Mybatis中的resultType和resultMap

Mybatis ResultMap 和 resultType 区别

mybatis中resultType和resultMap的区别