MyBatis之级联——一对多关系】的更多相关文章

上次我们讲到了MyBatis的一对一关系的表示,简单回顾一下一对一关系就是一个学生只有一个学生证.那么什么是一对多关系呢?一个学生有多个课程这就是一对多的关系.我们结合上一章中的学生和学生证,在此基础上新增一个课程表和课程成绩表.学生对应课程表是一对多的关系,在学生确定的情况下课程表对应课程成绩是一对一的关系.我们先来看看我们所假设的场景数据结构的设计. 数据库的ER图如下(因为对数据库还处于菜鸟阶段--所以可能ER图绘制有误,但不影响我们讲解MyBatis一对多关系的级联): 再看看数据库的物…
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Mybatis并完成CRUD操作,这是本文操作的基础.本文先准备一个测试的数据库,然后使用MyBatis Generator进行部分代码自动生成,再以一个例子来展示稍微高级点的操作:使用Mybatis完成级联一对多的CRUD操作. 数据库准备 数据库用到三张表:user表,role表,user_role表…
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Mybatis并完成CRUD操作,这是本文操作的基础.本文先准备一个测试的数据库,然后使用MyBatis Generator进行部分代码自动生成,再以一个例子来展示稍微高级点的操作:使用Mybatis完成级联一对多的CRUD操作. 数据库准备 数据库用到三张表:user表,role表,user_role表…
一对多关系更加常见,比如用户和订单,一个用户可以有多个订单 DROP TABLE IF EXISTS customer; /*用户表*/ CREATE TABLE customer( `pk` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(16), `email` VARCHAR(16), `password` VARCHAR(16) ); /*插入三条测试数据*/ INSERT INTO customer(`name`,`email`,`pass…
0. 表结构 1. 准备工作 1.1 配置文件等信息,请参考  myBatis之入门示例 1.2 entity 1.2.1 TPersonInfo.java package com.blueStarWei.entity; public class TPersonInfo { private Integer id; private String name; private Integer age; private Address address; //setter & getter @Overri…
学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢? 其实很简单 首先我们照常先准备前期的环境(具体解释请  参考初识Mybatis进行增.删.改.查 blogs )这里我就直接上代码了 主配置文件:Configuration.xml <?xml version="1.0" encoding="UTF-8" ?&…
目录 写在前面 文档与系列文章 一对多关系 一个例子 级联删除 级联保存 总结 写在前面 在前面的文章中,我们只使用了一个Customer类进行举例,而在客户.订单.产品中它们的关系,咱们并没有涉及,比如一个客户可以有一个或者多个订单,在数据库中变现为“主外键关系”,有时也喜欢称为“父子关系”.那么就让我们一起学习,在nhibernate中,是如何处理这种关系的吧? 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernat…
一对一关系: 首先在数据库中新增地址表(t_address)用于存储人员的地址信息: CREATE TABLE `t_address` ( `id` ) NOT NULL AUTO_INCREMENT, `country` ) DEFAULT NULL, `city` ) DEFAULT NULL, `district` ) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE DEFAULT CHARSET=utf8 然后在人员信息表(t_person)中增加ad…
一.myBatis对象关系映射(多对一关系.一对多关系) 1.多对一关系: ---例子:多个员工同属于一个部门. (1)myBatis发送 额外SQL: ■ 案例:员工表通过 dept_id 关联 部门表,需求:查询指定员工id.name.所属的部门名称的信息. //部门对象的接口.映射文件省略,跟员工逻辑差不多 /* 员工对象的接口 */ public interface EmployeeMapper { Employee get(Long id); } <!--员工对象的映射文件--> &…
在这之前我们知道了MyBatis为我们提供了三种级联:一对一关系(assocation).一对多关系(collection).鉴别器(discriminator).在最后一个鉴别器例子中,看到了当层级关系比较负责时,我们似乎已经难以应对和维护各种级联关系,在对数据库进行查询是否应用MyBatis为我们提供的级联这需要在实际中去斟酌和取舍.在我们通过级联来查询信息时会发现有一个问题,当我们只想查询出学生的普通信息(姓名.性别),而不想查询出他的成绩.课程.体检表时,之前的三个例子不管你是否需要成绩…