结果映射 ‹id› ‹result›

Exisi 2021-03-27 07:29:55
Categories: Tags:
  • <id> <result> 元素都是MyBatis中用于映射查询结果到 Java 对象属性的标签。<id> 元素用于指定 Java 对象的 ID 属性。<result>元素也可以用于映射查询结果到Java对象的属性上。

 

  • 这些是结果映射最基本的内容。id result 都将一个列的值映射到一个简单数据类型(字符串,整型,双精度浮点数,日期等)的属性或字段。

 

  • 这两者之间的唯一不同是, id 表示的结果将是对象的标识属性,这会在比较对象实例时用到。 这样可以提高整体的性能,尤其是缓存和嵌套结果映射(也就是联合映射)的时

示例

<resultMap id="userResultMap" type="User">

<id property="id" column="user_id"/>

<result property="name" column="user_name"/>

<result property="email" column="user_email"/>

</resultMap>

 

属性

描述

property

映射到列结果的类表的字段或属性。如果用来匹配的 JavaBeans 存在给定名字的属性,那么它将会被使用。否则 MyBatis 将会寻找给定名称 property 的字段。 无论是哪一种情形,你都可以使用通常的点式分隔形式进行复杂属性导航。比如,你可以这样映射一些简单的东西: username ,或者映射到一些复杂的东西: address.street.number” 。

column

数据库中的列名,或者是列的别名。一般情况下,这和 传递给 resultSet.getString(columnName) 方法的参数一样。

javaType

一个 Java 类的完全限定名,或一个类型别名(参考上面内建类型别名 的列表) 。如果你映射到一个 JavaBean,MyBatis 通常可以断定类型。 然而,如果你映射到的是 HashMap,那么你应该明确地指定 javaType 来保证期望的行为。

jdbcType

JDBC 类型,所支持的 JDBC 类型参见这个表格之后的“支持的 JDBC 类型”。 只需要在可能执行插入、更新和删除的允许空值的列上指定 JDBC 类型。这是 JDBC 的要求而非 MyBatis 的要求。如果你直接面向 JDBC 编程,你需要对可能为 null 的值指定这个类型。

typeHandler

我们在前面讨论过的默认类型处理器。使用这个属性,你可以覆盖默 认的类型处理器。这个属性值是一个类型处理 器实现类的完全限定名,或者是类型别名。

  • 一个Java对象只能有一个ID属性,因此<id>标签只能出现一次