MyBatis 的 resultMap 是什么?

MyBatis 的resultMap用来映射查询结果集。
简单来说,当表中的字段和对象的属性不一一匹配时,我们就需要使用resultMap来实现映射。

resultMap的语法格式:

<resultMap type="map类型" name="map名称">
   <id property="id" column="columnName" /> 
   <result property="property" column="columnName" />  
</resultMap>

参数说明:

  • type:是类的全限定名或别名。
  • name: resultMap的命名,方便引用。
  • id:标识映射结果到一个属性。
  • result:普通列映射到一个属性。
  • column: 查询列名
  • property:实体类的属性名称

使用resultMap的方式:

<select id="selectUser" resultMap="userMap">
   select * from user 
</select>

这里的userMap是定义的resultMap的名字。

其他用法:

  • constructor:将输入的结果集映射为 JavaBean 的构造函数的参数。
  • association:映射的结果是一个复杂类型的属性。
  • collection:映射的结果是复杂类型属性的集合。

总的来说,resultMap是MyBatis映射器最重要的元素,它可以解决各种复杂对象关系映射的问题。