mapper.xml resultmap
时间: 2023-04-20 09:01:42 浏览: 167
mapper.xml中的resultmap是用来映射查询结果集的。它可以将查询结果集中的每一行数据映射成一个Java对象,或者将多个查询结果集中的数据映射成一个Java对象。resultmap可以定义多个属性,包括id、type、extends、result、association、collection等,用来描述映射关系。其中,id属性用来给resultmap起一个唯一的标识符;type属性用来指定映射的Java对象类型;extends属性用来继承其他resultmap;result属性用来映射基本类型或简单对象;association属性用来映射一对一关系;collection属性用来映射一对多关系。通过resultmap,我们可以方便地将查询结果集映射成Java对象,从而简化了代码的编写和维护。
相关问题
mybatis的mapper.xml resultMap怎么添加数组查询
如果你需要在 MyBatis 的 mapper.xml 文件中进行数组查询,可以使用 `collection` 元素来定义一个集合属性,然后在 `resultMap` 中使用 `association` 或 `collection` 将它关联到对应的实体类中。
例如,假设你有一个 `Order` 实体类,它包含一个 `List<OrderItem>` 类型的属性 `orderItems`,你可以在 `mapper.xml` 中这样定义 `resultMap`:
```xml
<resultMap id="orderResultMap" type="Order">
<id column="id" property="id" />
<result column="order_number" property="orderNumber" />
<collection property="orderItems" ofType="OrderItem">
<id column="item_id" property="id" />
<result column="item_name" property="name" />
<result column="item_price" property="price" />
</collection>
</resultMap>
```
在这个例子中,`collection` 元素定义了一个集合属性 `orderItems`,并且使用 `ofType` 属性指定了它所包含的元素类型为 `OrderItem`。然后,使用 `association` 或 `collection` 将这个集合属性关联到 `Order` 实体类中。
当 MyBatis 执行查询时,它会将查询结果按照 `resultMap` 中的定义进行映射,如果查询结果中包含了 `orderItems` 属性的数据,MyBatis 会将它们转换为 `List<OrderItem>` 类型并且设置到对应的 `Order` 对象中。
resultMap mapper.xml
resultMap是MyBatis框架中的一个重要概念,用于将查询结果映射到Java对象上。在mapper.xml文件中,可以通过resultMap标签定义一个结果映射规则,指定如何将查询结果的列与Java对象的属性进行映射。
resultMap标签的定义通常包括以下几个部分:
1. id属性:用于给resultMap起一个唯一的标识符。
2. type属性:指定映射的Java对象类型。
3. result标签:用于定义每个属性的映射规则。
- property属性:指定Java对象的属性名。
- column属性:指定查询结果的列名。
- javaType属性:指定Java对象属性的数据类型。
- jdbcType属性:指定查询结果列的数据库类型。
- resultMap属性:用于嵌套映射,指定另一个resultMap的id。
通过使用resultMap,可以实现复杂的结果映射,包括一对一、一对多、多对一等关联关系的映射。在mapper.xml中,可以使用association和collection标来定义关联关系。