ResultMap是MyBatis中最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。外部 resultMap 的命名引用,结果集的映射是 MyBatis 最强大的特性,对其有一个很好的理解的话,许多复杂映
射的情形都能迎刃而解。使用 resultMap 或 resultType,但不能同时使用。
这里只是做一个最常用的描述,具体描述还是希望能够自己去看API文档,毕竟那里才是最详细的。
resultMap:
使用association和collection完成一对一和一对多高级映射(对结果有特殊的映射要求)。
association
作用:
将关联查询信息映射到一个pojo对象中。
场合:
为了方便查询关联信息可以使用association将关联订单信息映射为用户对象的pojo属性中,比如:查询订单及关联用户信息。
使用resultType无法将查询结果映射到pojo对象的pojo属性中,根据对结果集查询遍历的需要选择使用resultType还是resultMap。
collection:
作用:
将关联查询信息映射到一个list集合中。
场合:
为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,比如:查询用户权限范围模块及模块下的菜单,可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的菜单list属性中,这样的作的目的也是方便对查询结果集进行遍历查询。
如果使用resultType无法将查询结果映射到list集合中。
具体例子看上篇MyBatis关系映射