MyBatis 高階查詢(二)

2021-10-24 17:19:32 字數 630 閱讀 2841

一對多對映

在上一節中,我們使用了4種方法實現一對一對映,這一節,一對多對映只有兩種配置方式,都是使用collection標籤進行的

collection集合的巢狀結果查詢

和association類似,集合的巢狀結果查詢就是通過一次sql查詢將所有的結果查詢出來,然後通過配置的結果對映,將資料對映到不同的物件中去,在一對多的關係中,主表的一條資料會對應關聯表中的多條資料,因此一般查詢結果會有多個,按照一對多的數量結果儲存資料的時候,最終的結果數會小於等於查詢的總記錄數

在rbac許可權系統中,乙個使用者擁有多個角色,每個角色又是多個許可權的集合,所以要漸進式地去實現乙個sql,查詢出所有使用者和使用者擁有的角色,以及角色所包含的所有許可權資訊的兩層巢狀結果

我們先來實現一層巢狀結果,修改sysuser類如下:

/**

* 使用者表

* @author administrator

* */

public class sysuser

public void setrolelist(listrolelist)

在sysuser類中增加rolelist屬性用於儲存使用者對應的多個角色

mybatis高階查詢

sqlsession的獲取 sqlsessionfactorybean bean new sqlsessionfactorybean bean.setdatasource mysqldatasource bean.setconfiglocation new pathmatchingresourcep...

高階查詢二

in 語句 只執行一次 確定給定的值是否與子查詢或列表中的值相匹配。in在查詢的時候,首先查詢子查詢的表,然後將內錶和外表做乙個笛卡爾積,然後按照條件進行篩選。所以相對內錶比較小的時候,in的速度較快。exists語句 執行student.length次 指定乙個子查詢,檢測行的存在。遍歷迴圈外表,...

MyBatis 高階查詢之多對多查詢(十一)

查詢條件 根據玩家名,查詢遊戲資訊 根據玩家名查詢遊戲 param name 玩家名 return 玩家實體類 public playerentity selectplayerbyname string name 接下來,我分別演示關聯查詢和子查詢方式實現介面方法的對映。關聯查詢方式 現在我們暫時先...