Mybatis级联操作(入门级)

数据库实体间关系 & java实体类间关系

在数据库中,实体间关系有1:1,1:n,n:1,m:n

在数据库中有E-R图可以解析这种关系,通过建立主键、外键、第三张关系表的方式表示这种关系
而在java实体类中我们使用成员变量来表示这种关系

关系数据库表java实体类
1:1(用户user-身份证信息card)在User表中设置主键为card(或在Card表中设置主键为user)在User类中添加成员变量 card(或在card类中添加成员变量user)
1:n (部门dept-员工emp)在Dept表中添加emp表的主键为外键(或在Emp表中添加dept的主键为外键)在Dept类中添加成员变量List<Emp>(或在Emp类中添加成员变量Dept)
n:1(员工emp-部门dept)在Emp表中添加dept的主键为外键(或在Dept表中添加emp表的主键为外键)在Emp类中添加成员变量Dept(或在Dept类中添加成员变量List<Emp>)
m:n(学生stu-老师teacher)使用第三张关系表(stu主键-tea主键)在Teacher类中添加成员变量List<stu>(或在Stu类中添加成员变量List<teacher>

重点在于:如何将java的实体类中的成员变量在mybatis的对象映射文件中表示

对象映射文件 (1:1)

成员变量是一个类
首先创建两张表 t_user,t_card

在这里插入图片描述

  • User->Card(一个人对应一个身份信息)
    为实现1:1关系,在User中将Card设置为成员变量
    在这里插入图片描述
    UserMapper.xml文件
    在这里插入图片描述
  • Card->User(一个身份信息对应一个人)
    同理也可以将Card的成员变量设置为User(两个类设置成员变量只能选其一)
    选择Card设置成员变量时,CardMapper.xml内容如下
    在这里插入图片描述

对象映射文件 (1:n)

建表(一个部门可以有多个员工,一个员工只能有一个部门)
用部门表的主键做员工表的外键
在这里插入图片描述
在这里插入图片描述

  • Emp->Dept(一个员工对应一个部门)
    因为一个员工只对应一个部门,所以在员工与部门这里还是1:1的关系,所以实现联系是在emp中设定一个Dept类的成员变量
    在这里插入图片描述
    所以Xml中实现方式与1:1相同
    在这里插入图片描述
  • Dept->User(一个部门对应多个员工)
    但当选择在一个部门中添加成员变量时,一个部门有多个员工,所以成员变量是一个员工集合
    在这里插入图片描述
    DeptMapper.xml
    在这里插入图片描述

对象映射文件 (m:n)

成员变量是一个集合
建立数据表
在这里插入图片描述
在这里插入图片描述
因为是多对多的关系,使用第三张表来表示关系
在这里插入图片描述

  • Student->Teacher
    将List<Tea>作为成员变量
    在这里插入图片描述
    StuMapper.xml
    在这里插入图片描述

  • Teacher->Student
    在Teacher类中将List<Stu>作为成员变量
    在这里插入图片描述
    TeacherMapper.xml
    在这里插入图片描述

总结起来就两句话:
当成员变量为一个类时,在xml中设置为association
当成员变量作为一个集合时,在xml中设置为collection

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值