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.

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

我的解决办法就是  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()));
}