MyBatis 的 ResultMap作用是什么?

MyBatis 的ResultMap的作用主要有以下几点:

  1. 映射结果集与JavaBean属性不对应。
    ResultMap可以解决列名和属性名不一致的问题。
  2. 映射复杂类型的结果集。
    一个结果集有多个对象,ResultMap可以方便映射。
  3. 实现一对多、多对一的结果集映射。
    通过collection和association解决对象关系映射。
  4. 实现结果集的结果转对象。
    通过constructor实现通过构造函数创建对象。
  5. 自动映射结果集。
    通过autoMapping, *属性实现对结果集的自动映射。
  6. 实现联合查询结果映射。
    一个结果集包含不同对象的属性。

举个例子:

<resultMap id="studentMap" type="Student">
   <id property="id" column="sid"/>
   <result property="name" column="name"/>
   <collection property="books" ofType="Book">      
       .... // Book记录的结果集映射       
   </collection>
</resultMap>

这里通过ResultMap实现:

  • Student对象的映射
  • 与Book一对多的关系映射
  • 解决列名与属性不一致问题

总的来说,Mybatis的ResultMap可用于解决各种复杂对象关系映射问题。