基本概念
[!danger] 注意
配置结果集映射,只用看 SQL 执行结果,不看 SQL 语句!
在前面的内容中,由于我们的 PO 类的属性名与数据库中表的列名是一致的,因此,在 Mapper.xml 配置文件中,Mybatis 省略/简化 掉了一块配置。
<resultMap id="xxx" type="demo.bean.po.Department">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="location" jdbcType="VARCHAR" property="location" />
</resultMap>
...
<select id="..." resultMap="xxx"> ... </select>
<!-- 如何配合 @Select 注解使用见后续内容 -->
很容易猜得到这个块配置的作用就是(在查询功能中)指定数据库的表的列与 PO 类的属性之间的对应关系 。
实际上,Mybatis 需要有这样的一个配置来 指导/告诉 它如何将结果集(ResultSet)中的数据映射成对象,或对象的集合。这是任何一个 ORM 框架的基本功能(重要功能)之一。
resultMap 元素必要的两个属性有:
属性名 | 说明 |
---|---|
id | resultMap 的唯一标识符。 |
type | 它表示映射所返回的实际类型。 |
resultMap 最常见的两个子元素有:
-
<id> 子元素
表示数据库表的主键列。 其中,
column
属性表示表的列名;property
属性,表示映射对象的属性名 -
<result> 子元素
表示数据库的普通列。其中,
column
属性,表示数据库表的列名;property
属性,表示映射对象的属性名