1. 一对一

如一个身份证对应一个人

1.1 可以使用实体类继承关系(使用较少)

1.2 (常用)在本实体类中直接添加一对一的实体属性在进行getter和setter

1.3 在映射文件中应使用resultMap作为返回值

在一对一使用的是association 、javaType和column连接的列
其中javaType可以使用别名来减少代码量

2.一对多

例如:stuinfo对classinfo

2.1 在包含多的实体类中加入List来包含

如一个用户有多个账户,主表实体包含从表实体集合的引用

2.2 从表应包含一个主表对象的引用

2.3 mapper映射文件中返回值应该是resultMap

一对多 使用collection 标签 属性为ofType
其中ofType也可以使用别名

3.多对多

例如:用户和角色,一个用户可以有多个角色,一个角色可以有多个用户
需要使用中间表

3.1 中间表应该包含两个表的主键(中间表不需要实体类)

3.2 角色表

应该包含另一个表的集合

3.3用户表应该也包含角色集合

    //多对多的关系映射:一个用户可以具备多个角色
    private List<Role> roles;

    public List<Role> getRoles() {
   
        return roles;
    }

    public void setRoles(List<Role> roles) {
   
        this.roles = roles;
    }

3.4 mapper映射文件

与一对多类似