多表关联查询

一对多  

单条SQL实现。  

//根据部门编号查询出部门和部门成员姓名
public dept selectAll() thorws Excatipon;  //接口的抽象方法

下面是对应接口的映射文件,关键代码

<resultMap id="AllMapper" type="dept">

<id column="deptNo" property="deptNo"></id>
<result column="deptName" property="deptName"></result>
<collection  property="emps" ofType="Emp">//collection用于集合对象,property对应实体中的集合变量名, ofType元素类型为Emp,因为集合中的数据类型都是Emp的。
    <id column="empNo" property="empNo"></id>
<result column="empName" property="empName"></result>
</collection>

</resultMap>

<select id="selectAll"  resultMap=”AllMapper”>  //id对应接口中的方法,resultMap对应上面resultMap的id中的内容。

SELECT * FROM dept,emp WHERE dept.deptNo=emp.deptNo AND dept.deptNo=#{占位符}

</select>

测试类中的代码:

一对多多条SQL实现。

//根据部门编号查询出部门和部门成员姓名

public dept selectTwo() thorws Excaption;//接口中的方法

数据库测试

映射文件代码:

测试类运行代码:

多对一关联查询

接口代码:

映射文件代码:  其实就是多的一方对一的一方,  sql语句也就是换了个条件, 要灵活运用

测试类代码:

多对多关联查询

select student.sid,sname,teacher.tid,tname
        from student,teacher_student,teacher
        where student.sid=teacher_student.sid
         and  teacher.tid=teacher_student.tid
         and  teacher.tid=#{tid}

其实多对多除了SQL语句和上面不一样其实实现思路都是一样的。可以灵活运用。

自关联查询

自关联查询,就是自己可以称多的一方,自己也可以称单的一方。

按三级分类案例来说,自己有自己的父类,自己也可以有自己的子类

表中有三列,一个是分类编号, 一个是分类名称,一个是父类分类编号,

SQL语句  select * from  tree表 where  pid=上次查询出的数据的cid

MyBatis 多表关联查询的更多相关文章

  1. 三、mybatis多表关联查询和分布查询

    前言 mybatis多表关联查询和懒查询,这篇文章通过一对一和一对多的实例来展示多表查询.不过需要掌握数据输出的这方面的知识.之前整理过了mybatis入门案例和mybatis数据输出,多表查询是在前 ...

  2. JAVA入门[9]-mybatis多表关联查询

    概要 本节要实现的是多表关联查询的简单demo.场景是根据id查询某商品分类信息,并展示该分类下的商品列表. 一.Mysql测试数据 新建表Category(商品分类)和Product(商品),并插入 ...

  3. mybatis多表关联查询之resultMap单个对象

    resultMap的n+1方式实现多表查询(多对一) 实体类 创建班级类(Clazz)和学生类(Student),并在Student中添加一个Clazz类型的属性,用于表示学生的班级信息. mappe ...

  4. Mybatis多表关联查询字段值覆盖问题

    一.错误展示 1.首先向大家展示多表关联查询的返回结果集 <resultMap id="specialdayAndWorktimeMap type="com.hierway. ...

  5. 5.mybatis一对一表关联查询

    方式一:嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集,封装联表查询的数据(去除重复的数据)  SELECT * FROM class c,teacher t WHERE c.tid = t.t ...

  6. spring boot 2使用Mybatis多表关联查询

    模拟业务关系:一个用户user有对应的一个公司company,每个用户有多个账户account. spring boot 2的环境搭建见上文:spring boot 2整合mybatis 一.mysq ...

  7. 三、Mybatis多表关联查询应用

    一对一查询 实现语句:select * from neworder o, user u where o.uid = u.id 实体Order: 接口: 配置: 测试: 一对多查询 实现语句:selec ...

  8. MyBatis学习总结(三)——多表关联查询与动态SQL

    在上一章中我们学习了<MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射>,这一章主要是介绍一对一关联查询.一对多关联查询与动态SQL等内容. 一.多表关联查询 表与 ...

  9. Spring Boot入门系列(十七)整合Mybatis,创建自定义mapper 实现多表关联查询!

    之前讲了Springboot整合Mybatis,介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.mybatis 插件自动生成的mappe ...

随机推荐

  1. Intel 处理器架构演进 转

    Intel 处理器架构演进  Posted on 2018-02-13 |  Edited on 2018-09-23 |  In Computer Architecture |  Comments: ...

  2. How to Reset VW Steering Assist 1S1909144P with OBDSTAR X300 DP

    Vehicle model:VW Polo 2015 (or other Audi, Seat, Skoda, VW with unit 1S1 909 144 P) Module:Control u ...

  3. 微信支付自带的简易log

    using System; using System.Collections.Generic; using System.Web; using System.IO; namespace WxPayAP ...

  4. instanceof简单用法

    语法: 对象 instanceof 类: 含义:如果这个对象时这个类或者这个类的子类的实例化,那么结果及时ture, 否则 false. 常常用来判断一个类是否是某个类的子类,以此判断A类是否继承或者 ...

  5. 从集合中查找最值得方法——max(),min(),nlargest(),nsmallest()

    从集合中查找最值得方法有很多,常用的方法有max(),min(),nlargest(),nsmallest()等. 一.max()和min() 1.1 入门用法 直接使用max(),min(),返回可 ...

  6. Redis学习笔记:与SpringBoot结合使用

    首先需要在pom文件中导入相应的Redis依赖(版本可以会变化,下面坐标也可能会变化) <dependency> <groupId>org.springframework.bo ...

  7. es6数值

    ES6在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法,用来检查Infinite和NaN这两个特殊值. Number.isFinite(15); ...

  8. 【Selenium】【BugList10】smtp发送邮件问题汇总:550/535/554

    [场景] 通过126邮箱向QQ邮箱发送HTML格式邮件 [代码1] from email.mime.text import MIMEText from email.header import Head ...

  9. 初入pygame——贪吃蛇

    一.问题利用pygame进行游戏的编写,做一些简单的游戏比如贪吃蛇,连连看等,后期做完会把代码托管. 二.解决 1.环境配置 python提供一个pygame的库来进行游戏的编写.首先是安装pygam ...

  10. 在香港用什么软件可以唱歌?香港K歌app推荐

    KTV的源头来自于日本,KTV是Karaok TV的缩写.随着互联网时代越来越发达,手机K歌成了很多人会选择的方式,那么在香港有什么好用的K歌软件呢?这里qt6小编给大家推荐几款好用的,让你足不出户即 ...