mysql 高级映射_Mybatis3详解(十)——高级映射之多对多映射

本文详细介绍了在Mybatis3中如何处理多对多映射关系,通过用户和角色的案例展示了双向一对多转换为多对多的过程。包括创建中间表、定义实体类、Mapper接口和配置文件,以及实现查询用户时获取其角色和查询角色时获取对应用户的功能。并提供了查询代码和运行结果。
摘要由CSDN通过智能技术生成

1、案例分析

多对多映射其实就是一个双向的一对多映射,因为两边都是一对多。多对多主要是关联关系要找好,然后根据关联去查询。

由于前面的案例员工和部门一方是一对一,一方是一对多,所以不能形成多对多的条件,我重新换了一个案例——用户和角色。

一个用户可以拥有多个角色,User—>Role(一对多)。

一个角色可以赋予多个用户,Role—>User(一对多)。

这样就是形成了一个双向的一对多,从而变成了多对多,其实前面掌握了一对多就已经完全足够了,我为了再巩固一下所以继续写了个多对多的例子。数据库表如下:

ffa0af30e5b2201b734260bb2b05a906.png

对应mysql的sql脚本如下:

创建步骤分析:

User表和Role表具有多对多关系,需要使用中间表(t_user_role)关联,中间表中包含各自的主键,在中间表中是外键;

建立两个实体类:用户实体类中包含对角色的集合引用,角色实体类中包含对用户的集合引用;

建立两个Mapper接口:用户的Mapper接口和角色的Mapper接口;

建立两个配置文件:用户的配置文件和角色的配置文件;

实现功能:

查询用户时,同时得到用户所包含的角色信息;

查询角色时,同时得到角色对应的用户信息;

编写测试代码并查看运行结果,能否查询出相应的数据;

2、用户到角色的多对多查询

①、查询所有数据的sql语句

运行结果如下:

fdc98130b0bca8e5dad65436f4010768.png

②、编写User实体类和UserMapper接口

User实体类:

UserMapper接口:

③、配置映射文件UserMapper.xml

④、编写测试类

⑤、运行结果

查询所有用户信息:

087e385ca8fd928034080e3cbf9d6e23.png

根据用户id查询用户信息:

557529a9d4551bc89e7b4963106379c9.png

3、角色到用户的多对多查询

①、查询所有数据的sql语句

运行结果如下:

64ef9ce4289844ef04141944c8b6dfb4.png

②、编写Role实体类和RoleMapper接口

Role实体类:

RoleMapper接口:

③、配置映射文件RoleMapper.xml

④、编写测试类

⑤、运行结果

查询所有角色信息:

3eea68596bc217b45a1f75aa84ca2328.png

根据用户id查询角色信息:

3925a385b7795506917cad8eb34b35d4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值