在MyBatis中,resultType和resultMap都用于指定查询结果的映射方式,但有以下区别:
-
resultType:resultType用于指定查询结果的映射类型。它可以是Java基本类型、JavaBean或集合类型。当查询结果只有一个字段时,可以使用resultType指定映射类型。例如:
当查询结果为多个字段时,无法使用resultType进行映射,需要使用resultMap。
-
resultMap:resultMap用于定义查询结果的映射规则。它可以自定义映射规则,将查询结果的字段与Java对象的属性进行映射。resultMap需要在Mapper XML文件中进行定义。例如:
上述示例中,resultMap定义了一个id为userResultMap的映射规则,指定了查询结果字段user_id、user_name和user_age与User对象的id、name和age属性的映射关系。在select语句中使用resultMap属性引用了这个映射规则。如果查询结果有多个字段,且需要进行复杂的映射关系处理时,可以使用resultMap。
综上所述,resultType适用于简单的查询结果映射,而resultMap适用于复杂的查询结果映射。