MyBatis 的多表操作:一对一、一对多、多对多
一对一:一个订单只能属于一个人
一对多:一个人可以有多个订单
多对多:一个人可以有多个角色,但这些角色也可以被其他人拥有
一对一:一个订单只能属于一个人
order 表结构:
user 表结构:
1、首先根据数据库中的 order 表创建 order 的实体类,并在 order 的实体类中添加一个 user 字段
1 | import java.util.Date; |
2、在持久层添加一个查询全部的方法 findAll ()
1 | import java.util.List; |
3、编写映射文件
方式一
1 |
|
映射文件中各个部分的对应关系
方式二
1 |
|
映射文件中各个部分的对应关系
注解方式一
1 | import cn.henu.domain.Order; |
注解方式二
1 | public interface UserMapper { |
4、编写测试类
1 | import cn.henu.domain.Order; |
一对多:一个人可以有多个订单
order 表结构:
user 表结构:
1、首先根据数据库中的 user 表创建 user 的实体类,并在 user 的实体类中添加一个 order 字段
1 | import java.util.Date; |
2、在持久层添加一个查询全部的方法 findAll ()
1 | import cn.henu.domain.User; |
3、编写映射文件
1 |
|
映射文件中各个部分的对应关系
注解方式
1 | public interface OrderMapper { |
4、编写测试类
1 | import cn.henu.domain.Order; |
多对多:一个人可以有多个角色,但这些角色也可以被其他人拥有
sys_role 表结构:
sys_user_role 表结构(中间表):
user 表结构:
1、首先根据数据库中的 user 表创建 user 的实体类,并在 user 的实体类中添加一个 role 字段
1 | import java.util.Date; |
2、在持久层添加一个查询全部的方法 findAll ()
1 | import java.util.List; |
3、编写映射文件
1 |
|
注解方式
1 | public interface RoleMapper { |
4、编写测试类
1 | import cn.henu.domain.Order; |