mybatis中resultMap的子标签解释并举例说明
时间: 2023-08-18 19:36:22 浏览: 114
MyBatis的resultMap详解
MyBatis中的`<resultMap>`元素用于将查询结果映射到Java对象中。它有以下子标签:
1. `<id>`:用于映射主键字段,可以设置`column`属性指定数据库中的列名,`property`属性指定Java对象中的属性名,`jdbcType`属性指定JDBC类型,`typeHandler`属性指定类型处理器等。
举例:
```xml
<resultMap id="userMap" type="com.example.User">
<id column="id" jdbcType="BIGINT" property="id"/>
<!--其他字段映射-->
</resultMap>
```
2. `<result>`:用于映射普通字段,与`<id>`类似,可以设置`column`、`property`、`jdbcType`和`typeHandler`等属性。
举例:
```xml
<resultMap id="userMap" type="com.example.User">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<!--其他字段映射-->
</resultMap>
```
3. `<association>`:用于映射关联对象,可以设置`property`属性指定Java对象中的属性名,`javaType`属性指定关联对象的类型,`columnPrefix`属性指定关联对象在数据库中的列名前缀,`select`属性指定关联对象的查询语句等。
举例:
```xml
<resultMap id="orderMap" type="com.example.Order">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<association property="user" javaType="com.example.User" columnPrefix="user_">
<id column="user_id" jdbcType="BIGINT" property="id"/>
<result column="user_name" jdbcType="VARCHAR" property="name"/>
</association>
</resultMap>
```
4. `<collection>`:用于映射关联对象集合,可以设置`property`属性指定Java对象中的属性名,`ofType`属性指定集合中元素的类型,`columnPrefix`属性指定集合元素在数据库中的列名前缀,`select`属性指定集合元素的查询语句等。
举例:
```xml
<resultMap id="userMap" type="com.example.User">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<collection property="orders" ofType="com.example.Order" columnPrefix="order_">
<id column="order_id" jdbcType="BIGINT" property="id"/>
<result column="order_name" jdbcType="VARCHAR" property="name"/>
</collection>
</resultMap>
```
以上就是`<resultMap>`元素的子标签及其用途的简单介绍和示例。
阅读全文