先看一个示例   明明定义了Map<String,String>   实际内部存放的是Integer

Mybatis用Map接收返回值可能出现的问题-LMLPHP

Mybatis用Map接收返回值可能出现的问题-LMLPHP

resultType是Map

Mybatis用Map接收返回值可能出现的问题-LMLPHP

也就是说Mybatis是通过反射将类型放进去的  躲过了编辑器检查

Mybatis用Map接收返回值可能出现的问题-LMLPHP

但是这样取值时候就会报类型转换错误

解决方式

resultMap

Mybatis用Map接收返回值可能出现的问题-LMLPHP

另外一种方式

用Number   Integer和Double的父类   Map<String,Number>

Mybatis用Map接收返回值可能出现的问题-LMLPHP

06-17 13:02