-
对象不同:
- ResultMap:当查询返回的列名与POJO(Plain Old Java Object,普通Java对象)的属性名不一致时,ResultMap可以用来定义列名和POJO属性名之间的映射关系。
- ResultType:ResultType直接表示查询的返回类型,它要求数据库查询的列名与POJO的属性名完全一致,才能进行映射。
-
描述不同:
- ResultMap:对于一对一表连接的处理,ResultMap通常在主表的POJO中嵌套另一个表的POJO,并使用association节点元素在mapper.xml中进行连接处理。
- ResultType:它无法将查询结果映射到POJO的属性中,适用于单表查询,且只能用于基本类型或List、Map等简单集合类型。
-
类型适用不同:
- ResultMap:在MyBatis中,查询的返回类型既可以使用ResultType,也可以使用ResultMap。ResultMap提供了更灵活的映射方式,可以处理复杂类型的POJO和复杂的查询结果。
- ResultType:它直接表示返回的类型,与ResultMap不能同时存在于同一个mapper.xml文件中。
应用场景:
- ResultMap:适用于列名与属性名不一致的情况,或者需要进行复杂映射,如一对多、一对一关系的情况。
- ResultType:适用于列名与属性名一致且不需要复杂映射的简单查询场景。
总结来说,ResultMap提供了更强大的映射功能,尤其是在处理复杂查询和列名与属性名不一致的情况时,而ResultType则适用于简单的、列名与属性名一致的查询场景