结果映射 resultMap

<resultMap id="BaseResultMap" type="com.study.mybatis.entity.Country">
  <id column="ID" jdbcType="INTEGER" property="id"/>
  <result column="NAME" jdbcType="VARCHAR" property="name"/>
  <result column="CODE" jdbcType="VARCHAR" property="code"/>
</resultMap>

resultMap 标签用于配置 Java 对象的属性和查询结果列的对应关系,通过 resultMap 中配置的 column 和 property 可以将查询列的值映射到 type 对象的属性上。

属性

resultMap 包含的所有属性如下:

  • id:必填,并且唯一;

    当前命名空间中的一个唯一标识,用于标识一个结果映射。

  • type:必填,类的完全限定名,或者一个类型别名;

    用于配置查询列所映射到的 Java 对象的类型

  • extends:选填,可以配置当前的 resultMap 继承自其他的 resultMap,属性值为继承的 resultMap 的 id。

    继承的 resultMap 可以位于不同的映射文件中,在此种情形下,必须通过 namespace.id 来标识该resultMap(所有需要通过 id 进行标识的属性均可使用这种方式,比如:association 中的 select 和 resultMap)。

  • autoMapping:选填,可选值为 true 或 false,用于配置是否启用非映射字段(没有在 resultMap 中配置的字段)的自动映射功能,该配置可以覆盖全局的 autoMappingBehavior 配置。

标签

以上是 resultMap 的属性,resultMap 包含的所有标签如下:

  • constructor:用于在实例化类时,注入结果到构造方法中。

    • idArg:ID 参数;标记出作为 ID 的结果可以帮助提高整体性能。

    • arg:将被注入到构造方法的一个普通结果。

  • id:一个 ID 结果;标记出作为 ID 的结果可以帮助提高整体性能。

  • result:注入到字段或 JavaBean 属性的普通结果。

  • association:一个复杂的类型关联,许多结果将包成这种类型。

  • collection:一个复杂类型的集合。

  • discriminator:根据结果值来决定使用哪个 resultMap

    • case:基于某些值的结果映射。

Last updated