ResultType和ResultMap的区别

ResultType和ResultMap都是执行查询语句时返回的结果集

ResultType

ResultType相对与ResultMap而言更简单一点。只有满足ORM(Object Relational Mapping,对象关系映射)时,即数据库表中的字段名和实体类中的属性完全一致时,才能使用,否则会出现数据不显示的情况。如图所示,由于实体类Order的属性和表tb_order的字段不一致,导致页面数据不显示。

ResultType和ResultMap的区别_第1张图片 Order表
映射文件
ResultType和ResultMap的区别_第2张图片 数据库表的字段
ResultType和ResultMap的区别_第3张图片 浏览器页面

 ResultMap

ResultMap和ResultType的功能类似,但是ResultMap更强大一点,ResultMap可以实现将查询结果映射为复杂类型的pojo。

如上图的ResultType显示的结果,用ResultMap就可以解决。

ResultType和ResultMap的区别_第4张图片 映射文件

 

ResultType和ResultMap的区别_第5张图片 浏览器页面

说明:

  • ResultMap标签的id属性是唯一的,和select标签的resultMap一致。
  • type属性是pojo(普通的JavaBean对象)的包名加类名,用来封装信息。如果mybatis里面配置了别名包,也就是给包起别名,那么type里面直接写类名就可以了。
    ResultType和ResultMap的区别_第6张图片 mybatis配置文件

     

  • ResultMap中的id标签是用来描述表中的主键的对应关系,column用来描述数据库表中的主键字段名,property用来描述pojo中的属性名。
  •  result标签是用来描述表中的普通字段的对应关系,column用来描述数据库表中的普通字段名,property用来描述pojo中的属性名。
  • association标签用来实现一对一的关系
  • collection标签用来实现一对多的关系

 

ResultType和ResultMap的区别_第7张图片

你可能感兴趣的:(SSM)