在mybatis中,使用<select>标签,必须要设置resultType属性 或 resultMap属性

否则会报错!

resultType一般是返回简单类型的查询结果,涉及一张表

可是当我们使用关联查询时,会涉及到多张表,这时的返回结果只用一个pojo类来描述,显然是不合适的

所以我们引入了resultMap属性,可以实现返回 自定义类型

在Mapper文件中,写入resultMap

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--其中namespace是命名空间,通过命名空间去寻找对应的sql标签
必须要唯一,定位到dao层的接口上-->
<mapper namespace="top.bigking.dao.EmpMapper">
<resultMap id="RM_Emp" type="top.bigking.pojo.Emp">
<!-- property属性表示 pojo 中的属性 ,column 表示数据库中的列名-->
<id property="empNo" column="empNo"/>
<result property="ename" column="ename" />
<result property="job" column="job" />
<result property="mgr" column="mgr" />
<result property="hireDate" column="hireDate" />
<result property="sal" column="sal" />
<result property="comm" column="comm" />
<result property="deptNo" column="deptNo" />
<association property="dept" column="deptNo" javaType="top.bigking.pojo.Dept" >
<result property="deptNo" column="deptNo" />
<result property="dname" column="dname" />
<result property="loc" column="loc" />
</association>
</resultMap>
<select id="query" resultMap="RM_Emp">
SELECT t1.EMPNO, t1.ENAME, t1.MGR, t1.HIREDATE, t1.JOB,t1.SAL, t1.COMM,t1.DEPTNO, t2.DNAME
FROM emp t1 LEFT JOIN dept t2
on t1.DEPTNO = t2.DEPTNO
</select>
</mapper>

注意:<resultMap>中的id属性的值,必须与下面<select>标签中的resultMap的值相等,这样才能对应到返回值

在Emp.java中,增加属性:private Dept dept;

这样就能完成一对一查询

什么意思呢?

一个员工只属于一个部门,所以这是一对一查询

但是!反过来,一个部门可以有多个员工,这就是一对多查询!

在Dept.java中增加新的属性:private List<Emp> empList;

即可表示:一个部门中有多个员工

在DeptMapper.xml中,加入以下代码

     <resultMap id="RM_Dept" type="top.bigking.pojo.Dept">
<id property="deptNo" column="deptNo" />
<result property="dname" column="dname" />
<result property="loc" column="loc" />
<collection property="empList" ofType="top.bigking.pojo.Emp" column="deptNo">
<result property="empNo" column="empNo"/>
<result property="ename" column="ename" />
<result property="job" column="job" />
<result property="mgr" column="mgr" />
<result property="hireDate" column="hireDate" />
<result property="sal" column="sal" />
<result property="comm" column="comm" />
<result property="deptNo" column="deptNo" />
</collection>
</resultMap>

完整代码如下:

链接:https://pan.baidu.com/s/1Gnp5VdJwYghJe8lFml1gTw
提取码:tm6z

最新文章

  1. 前端开发:css技巧,如何设置select、radio 、 checkbox 、file这些不可直接设置的样式 。
  2. Linux下,如何给PHP安装pdo_mysql扩展
  3. C# 图片自由变换 任意扭曲
  4. MSSQL 获取汉字全拼 和 汉字首字母
  5. [转]Ionic – Mobile UI Framework for PhoneGap/Cordova Developers
  6. PAT 解题报告 1007. Maximum Subsequence Sum (25)
  7. POJ3352Road Construction(无向图强连通)
  8. EL标签库
  9. HDU-5391 Zball in Tina Town
  10. JAVA_HOME 的设置
  11. iOS APP之本地数据存储(译)
  12. 利用LinkedList实现洗牌功能
  13. C++矩阵处理库--Eigen初步使用
  14. C# selenium环境配置
  15. Python学习之路-Day2-Python基础3
  16. 小程序获取formid配置模板消息
  17. iptables nat 技术转发
  18. Mysql数据约束 整理
  19. 关于爬虫中常见的两个网页解析工具的分析 —— lxml / xpath 与 bs4 / BeautifulSoup
  20. 自学Python1.3-centos内python3并与python2共存

热门文章

  1. 配置文件加载位置与多profile文件
  2. Ubuntu18.04下更改apt源为阿里云源
  3. Python连接MySQL之Python库pymysql
  4. php+html5实现无刷新上传,大文件分片上传,断点续传
  5. UVa 11212 Editing a Book (IDA* &amp;&amp; 状态空间搜索)
  6. FZU 2203 单纵大法好 (二分 &amp;&amp; 贪心)
  7. DFS-全排列
  8. 【bzoj3223】Tyvj 1729 文艺平衡树
  9. 浅谈 Catalan number——卡特兰数
  10. uiautomatorviewer报错 Error taking device screenshot: EOF