MyBatis 多表关联查询
多表关联查询
一对多
单条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 多表关联查询的更多相关文章
- 三、mybatis多表关联查询和分布查询
前言 mybatis多表关联查询和懒查询,这篇文章通过一对一和一对多的实例来展示多表查询.不过需要掌握数据输出的这方面的知识.之前整理过了mybatis入门案例和mybatis数据输出,多表查询是在前 ...
- JAVA入门[9]-mybatis多表关联查询
概要 本节要实现的是多表关联查询的简单demo.场景是根据id查询某商品分类信息,并展示该分类下的商品列表. 一.Mysql测试数据 新建表Category(商品分类)和Product(商品),并插入 ...
- mybatis多表关联查询之resultMap单个对象
resultMap的n+1方式实现多表查询(多对一) 实体类 创建班级类(Clazz)和学生类(Student),并在Student中添加一个Clazz类型的属性,用于表示学生的班级信息. mappe ...
- Mybatis多表关联查询字段值覆盖问题
一.错误展示 1.首先向大家展示多表关联查询的返回结果集 <resultMap id="specialdayAndWorktimeMap type="com.hierway. ...
- 5.mybatis一对一表关联查询
方式一:嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集,封装联表查询的数据(去除重复的数据) SELECT * FROM class c,teacher t WHERE c.tid = t.t ...
- spring boot 2使用Mybatis多表关联查询
模拟业务关系:一个用户user有对应的一个公司company,每个用户有多个账户account. spring boot 2的环境搭建见上文:spring boot 2整合mybatis 一.mysq ...
- 三、Mybatis多表关联查询应用
一对一查询 实现语句:select * from neworder o, user u where o.uid = u.id 实体Order: 接口: 配置: 测试: 一对多查询 实现语句:selec ...
- MyBatis学习总结(三)——多表关联查询与动态SQL
在上一章中我们学习了<MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射>,这一章主要是介绍一对一关联查询.一对多关联查询与动态SQL等内容. 一.多表关联查询 表与 ...
- Spring Boot入门系列(十七)整合Mybatis,创建自定义mapper 实现多表关联查询!
之前讲了Springboot整合Mybatis,介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.mybatis 插件自动生成的mappe ...
随机推荐
- dos命令 创建数据库,建表,两表联查,三表联查(mysql---第一篇)
首先打开mysql的控制台,输入密码进行登录 (ps:本文的mysql控制台,是运用的php的集成环境(phpstudy),点击运行,找到mysql命令行,直接打开就可以了) 登陆成功后,就可以进行 ...
- textarea下高度自适应
1,背景:textarea的高度不会随内容的增加而自适应,会出现滚动条 解决方案: 1)使用div模拟textarea 使用h5的属性 <div contenteditable=&quo ...
- 超简单的全新win10安装
1.准备工作! 这里说一下需要装系统的东西: 至少8G的U盘或内存卡 一台Windows电脑 在要安装的电脑上至少有16G的空间,最好至少64G. 2.现成电脑下载文件(已经有重装系统U盘跳过这一步) ...
- Reveal Cards In Increasing Order LT950
In a deck of cards, every card has a unique integer. You can order the deck in any order you want. ...
- short s=1;s=s+1;short s=1;s+=1;有什么区别?
short s = 1; s = s + 1; 这个编译一定是不通过的,会提示损失精度. short s = 1; s += 1: 这个编译反而可以通过. 隐式类型转换可以由小到大自动转,即byte ...
- OPENCV中特征提取和匹配的步骤
1.定义特征提取器和描述子提取器: cv::Ptr<cv::FeatureDetector> detector; cv::Ptr<cv::DescriptorExtractor> ...
- Scrapy爬虫框架的学习
第一步安装 首先得安装它,我使用的pip安装的 因为我电脑上面安装了两个python,一个是python2.x,一个是python3.x,所以为了区分,所以,在cmd中,我就使用命令:python2 ...
- Madlibs
name1 = input('请输入一个名字:') name2 = input('再输入一个名字:') animal = input('请输入一种动物:') print('一二三四五{}上山打{}不在 ...
- 初入TensorFlow————配置TensorFlow
能看到这说明你对python已经有一定的了解了,因此很多基础直接跳过. 一.TensorFlow环境配置: TensorFlow的环境配置在网上很多的教程都是用anaconda的方式,但是很容易出现冲 ...
- ORM创建多表以及多表的增删改查
一. 多表的创建 1. 一对一 在哪个表中设置都行,但是添加数据的时候需要现在没有外键的表中添加数据 models.OneToOneField(to="表名",to_field=& ...