mybatis——連接查詢

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映射文件

與一對多類似
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章