每一个Map中都存储着集合,key中保存的是查询语句中的变量名,如:id ,name,age等。

一个Map相当于一个对象,那么如果返回多个对象时,对应的Mapper接口中的返回值类型就应该写成List>

的形式,

MyBatis 的每一次查询映射的返回类型都是 resultMap,查询的时候会将数据库中列数据复制到对象的相应属性上。

当我们返回类型属性是 resultType 的时候,MyBatis对自动的把对应的值赋给 resultType 所指定对象的属性。

所以当 resultType="java.util.Map" 时,不用在多表关联中配置对应的关系,SQL随意写,直接获得返回的属性值。

多表联查比较方便的 ~

在遍历取数据时,(1)先遍历List<>拿到Map<>,然后在通过map.keySet()拿到key,通过map.get(key)得到value值

(2)可以直接使用map.get("id"),map.get("name")获取到对应的value.

resultType 返回类型为 java.util.Map时,如果查询出来的字段(包括别名)值为空时,mybaitis是不会映射到的,也就是你的map对象不会有值为null时的这个属性。,你可以使用Mysql 中的ifnull函数或者是Oracle中nvl函数

ifnull(expr1,expr2)如果expr1为null,则返回2,否则返回expr1  

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: