mybatis中resultMap的子标签
时间: 2023-08-16 18:08:19 浏览: 98
在MyBatis中,`resultMap`元素是用来映射查询结果集的,它包含了多个子标签来完成不同的映射任务。以下是`resultMap`的常用子标签:
1. `id`:用来指定结果集的唯一标识符。
2. `result`:用来映射查询结果集中的每一列。
3. `association`:用来映射一对一关系的结果集。
4. `collection`:用来映射一对多关系的结果集。
5. `discriminator`:用来指定结果集中的列,以便根据不同的值映射不同的结果集。
除了上述子标签,`resultMap`元素还可以包含`constructor`、`discriminator`和`properties`等子标签,这些子标签用来进一步定义映射规则,以满足不同的查询需求。
相关问题
mybatis中resultMap标签用法
MyBatis中的ResultMap标签是用来将查询结果映射为Java对象的。
ResultMap标签的用法如下:
1. 在映射文件中使用<resultMap>标签定义一个映射关系,例如:
```
<resultMap id="userMap" type="User">
<id property="id" column="user_id" />
<result property="username" column="user_name"/>
<result property="password" column="user_password"/>
<result property="email" column="user_email"/>
</resultMap>
```
2. 在SQL语句中使用<resultMap>标签指定映射关系,例如:
```
<select id="getUserById" resultMap="userMap">
SELECT * FROM user WHERE user_id = #{id}
</select>
```
3. 在Java代码中使用映射关系转换查询结果,例如:
```
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = sqlSession.selectOne("getUserById", 1);
```
在这个例子中,我们定义了一个名为userMap的ResultMap,它将查询结果映射到User类的属性中。在SQL语句中,我们使用了resultMap属性指定了映射关系。最后,在Java代码中,我们使用SqlSession的selectOne方法查询一个用户,并将结果转换为一个User对象。
mybatis中resultMap 标签的使用
在MyBatis中,resultMap标签用于配置实体类与表字段的映射规则。该标签有以下作用:
- 自定义映射规则,通过id属性给映射规则指定一个唯一标识,用于在其他地方引用。
- 使用id标签配置主键映射,指定实体类中的属性和数据库表中的字段的对应关系。
- 使用result标签配置普通字段映射,指定实体类中的属性和数据库表中的字段的对应关系。
举例来说,可以使用resultMap标签来配置一个名为studentmap的映射规则,该规则用于将数据库表中的字段与Student实体类中的属性进行映射。其中,id标签用于配置主键映射,result标签用于配置普通字段映射。例如:
```xml
<resultMap id="studentmap" type="student">
<id property="sid" column="s_id"></id>
<result property="sname" column="s_name"></result>
<result property="sage" column="s_age"></result>
<result property="sphone" column="s_phone"></result>
</resultMap>
```
此外,在核心配置文件中,还可以通过设置lazyLoadingEnabled属性来开启延迟加载。如果使用的是MyBatis 3.41之前的版本,还需要配置aggressiveLazyLoading为true。同时,可以使用resultMap标签来配置一对多的映射关系,将一个教师对象对应多个学生对象。例如:
```xml
<resultMap id="teacher" type="Teacher">
<id property="tid" column="t_id"></id>
<result property="tname" column="t_name"></result>
<result property="tage" column="t_age"></result>
<collection property="students" ofType="student">
<id property="sid" column="s_id"></id>
<result property="sage" column="s_age"></result>
<result property="sname" column="s_name"></result>
<result property="sphone" column="s_phone"></result>
</collection>
</resultMap>
```
此外,可以使用association标签来配置多对一的映射关系,将多个学生对象对应一个教师对象。例如:
```xml
<association property="teacher" javaType="Teacher">
<result property="tid" column="t_id"></result>
<result property="tname" column="t_name"></result>
<result property="tage" column="t_age"></result>
</association>
```
总结起来,resultMap标签在MyBatis中用于配置实体类与表字段的映射规则,可以通过id、result、collection、association等子标签来实现不同类型的映射关系的配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [mybatis中Resultmap标签的的使用](https://blog.csdn.net/weixin_43891398/article/details/125608434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文