请简述 MyBatis 的 resultType 和 resultMap 的区别是什么?
时间: 2024-04-28 19:19:17 浏览: 127
MyBatis 中 `resultType` 和 `resultMap` 都是用于将 SQL 查询结果映射到 Java 对象上的,但它们的作用略有不同:
- `resultType` 是直接指定结果集映射的 Java 类型,MyBatis 会自动将结果集中的每一行映射成一个该类型的对象。需要注意的是,当查询结果只有单个基本类型或者单个对象时,可以使用 `resultType` 进行映射。
- `resultMap` 则是自定义结果集映射规则的方式,通过指定映射规则,可以将查询结果映射成一个或多个 Java 对象。使用 `resultMap` 可以实现更加复杂的结果集映射,例如嵌套查询、多表关联查询等。
因此,当查询结果比较简单时,可以使用 `resultType` 进行映射;当查询结果比较复杂时,可以使用 `resultMap` 进行自定义映射规则。
相关问题
在mybatis中 resultMap,resultType区别?
在MyBatis中,resultMap和resultType都是用于映射查询结果的。他们的区别在于对象不同、描述不同和类型适用不同。
resultType用于指定查询结果的返回类型。当使用resultType进行输出映射时,只有查询出来的列名与POJO(简单实例对象)中的属性名一致,该列才能成功映射。换句话说,resultType是直接表示返回类型的。
resultMap则是对外部ResultMap的引用。它是通过定义一个映射规则(ResultMap)来描述如何将查询结果映射到Java对象上。resultMap可以更灵活地定义属性与列之间的映射关系,可以处理复杂的映射逻辑,例如多对一、一对多等关联关系。需要注意的是,resultType和resultMap不能同时存在,只能选择其中一种进行映射。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [mybatis中resultmap与resulttype区别](https://blog.csdn.net/s_156/article/details/124865877)[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_2"}}] [.reference_item style="max-width: 50%"]
- *2* [mybatis中resultMap和resultType区别,三分钟读懂](https://blog.csdn.net/qq_42176665/article/details/127938652)[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_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
在mybatis中 resultMap,resultType区别?
在MyBatis中,resultMap和resultType是用于在查询中进行结果映射的两种方式。它们的区别如下:
1. 对象不同:resultType是直接指定返回类型,而resultMap是一个定义了结果映射规则的对象。
2. 描述不同:resultType通过属性名来进行结果映射,只有查询出来的列名与属性名一致时才能成功映射。而resultMap可以通过配置来定义复杂的映射规则,可以自由地对查询结果进行处理和映射。
3. 类型适用不同:resultType适用于简单的查询结果映射,当查询结果的列名和属性名一致时比较方便。而resultMap适用于复杂的查询结果映射,可以灵活地处理和映射不同的查询结果。
总结来说,resultType是一种简单的结果映射方式,适用于列名和属性名一致的情况;而resultMap是一种更为灵活和强大的结果映射方式,可以自定义映射规则来处理复杂的查询结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [mybatis中resultmap与resulttype区别](https://blog.csdn.net/s_156/article/details/124865877)[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_2"}}] [.reference_item style="max-width: 50%"]
- *2* [mybatis中resultMap和resultType区别,三分钟读懂](https://blog.csdn.net/qq_42176665/article/details/127938652)[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_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文