博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis中resultType和resultMap的联系
阅读量:5229 次
发布时间:2019-06-14

本文共 2506 字,大约阅读时间需要 8 分钟。

在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解

 

比如,我们平时使用的单表查询,很多时候使用的就是resultType

下来,看一段代码吧

1 package org.cxxy.base.cxsc.entity; 2  3 public class TbClass { 4     private Integer id; 5  6     private String classname; 7  8     private String deptname; 9 10     public Integer getId() {11         return id;12     }13 14     public void setId(Integer id) {15         this.id = id;16     }17 18     public String getClassname() {19         return classname;20     }21 22     public void setClassname(String classname) {23         this.classname = classname == null ? null : classname.trim();24     }25 26     public String getDeptname() {27         return deptname;28     }29 30     public void setDeptname(String deptname) {31         this.deptname = deptname == null ? null : deptname.trim();32     }33 }

上面的PO类我使用的是我的一个小Demo

下来开始贴我的XML Mapper

 

这个resultMap是对应的我的po类的属性

下来,贴出我的xml的单表查询statement

select  id, classname, deptnamefrom tb_classwhere id = #{id,jdbcType=INTEGER}
 

parameterType代表的是输入参数(比如:select * from tb_class where id = "xxxx"),resultMap表示映射的结果集,从命名中也可以看到Map,当然是结果集了,

上述代码所代表的单表查询(一对一),当然,在一般开发的时候,像这种映射,我们一般会使用下述的写法

即是说所得到的结果一样,一般在我们理解方面,尽量还是选择后者

但是如果根据客户的需求的变化,比如说写出了类的扩展类

org.cxxy.base.cxsc.entity.TbClassDatail

如果,在扩展类中引入了外类(其他的表的属性(和本类没有共同的属性)),我们可以使用resultMap,但是也并非完全

resultMap

定义po类在Orders类中加入User属性。在Orders类中加入List
orderdetails属性

 订单查询清单

 

 <!-- 订单信息resultmap -->

上面的代码,我是贴的某培训机构的订单查询代码,

  上面的实体类的关系是:Order----->User  一对一(一个用户一个订单)      Order------->OrderDetail  一对多(一个订单有多条订单明细)

像这种的一对多、多对多查询的映射,我们尽量使用resultMap

注:collection 标签是一对多的映射,常用于一对多中扩展类下的List
的属性 association标签适用扩展类包含的一对一的po类对象属性

总结一下

resultType:

作用:

         将查询结果按照sql列名pojo属性名一致性映射到pojo中(适用于单表仅查询)。

场合:

         常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用resultType将每一条记录映射到pojo中,在前端页面遍历list(list中是pojo)即可。

好了,今天就分享到这里,以上仅为我自己的观点,博主现在大学生一枚,理解可能不是很充分,希望大牛能够多提提意见,谢谢。

 版权声明:本文为博主原创文章,未经博主允许不得转载。

原帖地址:http://www.cnblogs.com/ChoviWu/p/7190311.html

转载于:https://www.cnblogs.com/ChoviWu/p/7190311.html

你可能感兴趣的文章
Android的底层库libutils介绍
查看>>
mysql服务器参数
查看>>
【webpack】流行的前端模块化工具webpack初探
查看>>
变量名与函数名的命名规范
查看>>
hdu 2066 一个人的旅行
查看>>
经理评分
查看>>
Django REST framework+Vue 打造生鲜超市(八)
查看>>
Hyperledger Fabric CA的命令行用法
查看>>
FastDFS的单点部署
查看>>
spfa 判断负环 (转载)
查看>>
C#并行编程(2):.NET线程池
查看>>
SQL分页查询【转】
查看>>
java计算当前月的第几周,及周的起止日期/月及月的起止日期
查看>>
WebApi 异常处理解决方案
查看>>
c语言杨氏矩阵算法
查看>>
part01.02 泛型与集合:泛型
查看>>
Java后端记录每次接口访问信息和异常信息
查看>>
操作系统
查看>>
Tomcat反带和集群
查看>>
SVG路径path的贝塞尔曲线指令
查看>>