resultmap与resulttype的区别为:对象不同、描述不同、类型适用不同
一、对象不同
1、resultmap:resultMap如果查bai询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。
2、resulttype:resultType使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。
二、描述不同
1、resultmap:resultMap对于一对一表连接的处理方式通常为在主表的pojo中添加嵌套另一个表的pojo,然后在mapper.xml中采用association节点元素进行对另一个表的连接处理。
2、resulttype:resultType无法查询结果映射到pojo对象的pojo属性中,根据对结构集查询遍历的需要选择使用resultType还是resultMap。
三、类型适用不同
1、resultmap:mybatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap。
2、resulttype:resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。
说白了就是resultmap和resulttype都是作为sql的返回结果集,但是resultmap适用于pojo类和表字段不匹配以及复杂表的关联查询,不可以直接返回返回类型必须是外部自己定义的resultmap的引用但是resultType可以直接返回返回类型,但是实体类对应关系一定要名字完全对应。当然resulttype也可以实现关联查询的只是这需要思考出方法来实现。