多对多级联以及一对多和多对多级联为什么要使用关联表

本文探讨了多对多级联关系的处理方式,通常通过两个一对多关系实现,以用户和角色为例进行说明。在pojo清单中,使用List属性处理级联,并在Mapper接口和XML文件中实现查询。测试显示,多对多级联能够有效展示用户与角色的关联。最后,解释了为何使用关联表,避免数据重复和主键唯一性问题,对比了不使用关联表可能导致的不便。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.pojo清单

2.Mapper接口清单

3.XML文件

4.测试多对多级联

5.为什么使用关联表


多对多级联是一种非常复杂的级联关系,一般采用两个一对多来进行处理

例如:现实中有许多用户,用户又归属于一些角色,这样一个用户可以对应多个角色,而一个角色又可以由多个用户担当,这个时候用户和角色是以一张用户角色表建立关联关系,这样用户和角色就是多对多的关系。

1.pojo清单

1.1用户


@Data
public class User2 {
	private Long id;
	private String userName;
	private String realName;
	private SexEnum sex;
	private String mobile;
	private String tel;
	private String email;
	private String note;
	// 用户一对多
	private List<Role2> roleList;
}

1.2角色

@Data
public class Role2 {
	private Long id;
	private String roleName;
	private String note;
	// 角色一对多
	private List<User2> userList;
}

两个List类型的属性是专门做一对多级联用的,XML文件中会用collection元素去完成

2.Mapper接口清单

2.1用户Mapper

public interface UserMapper2 {
	
    public User2 getUser(Long id);
    
    public List<User2> findUserByRoleId(Long roleId);
}

2.2角色Mapper

public interface RoleMapper2 {
    public Role2 getRole(Long id);

    public List<Role2> findRoleByUserId(Long userId);
}

两个Mapper都有两个方法,第一个方法是根据ID查询当前对象,第二个是根据userId或者roleId查询对应的用户或者角色

3.XML文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值