返回的结果使用map接受时,例子: select id ,count(*) count from user 这条sql返回的结果使用map接受,dao层返回为List<Map<key,value>>。这时问题就来了,我使用了key为String类型和key为Long类型都可以成功接受到返回的数据,而且返回结果一致。 对于这个问题,和我之前对mybatis返回map接受对象的理解存在冲突。之前的理解是:map的key是我们返回的字段名称,value是该字段的值。key可以在sql返回时使用别名定义。之前也是一直如此理解使用没有出现过问题。这次发现这个疑问也是偶然间发现返回的map的key使用了Long类型,而使用时key分明是String类型,所以还特地测试了一下。 测试结果是:key为String和key为Long时返回的结果一致。 对此疑问的猜想: 1.使用map接受结果时,并不是key对应字段名称,value对应字段值 2.或者是mybatis在映射结果时,只要是map映射,都是强制将字段名称作为key值,value取字段值。 以上猜想还待验证,若有结论,会及时更新。如果有大神知道是为什么,还望指点一二