mybatis的一對多,多對一,以及多對對的配置和使用

1.本文章是無心中看見易百教程的Mybatis教程才注意到這個問題,平時都僅僅是在用CRUD,忽略了這方面的問題,真實十分羞愧
 
2.首先咱們開始對mybatis的一對多的探究
 
根據這個應用場景,咱們須要獲取在查詢一個用戶信息的時候還要去讀取這個用戶發佈的帖子
如今咱們來看一看用戶級聯文章在JavaBean中的編寫方式,這就是一對多在JavaBean中的配置
如今咱們再來看一看Mybatis的Mapper該如何編寫一對多?很簡單,就是在resultMap標籤中配置<collection>標籤,用來存儲查詢到的文章列表,注意posts表明的是用戶實體的文章List集合
這樣Sql查詢到的內容就映射到User用戶實體中的屬性中啦,這就是一對多的查詢
 
3.如今咱們再來探究一下Mybatis的多對一,如今有一個需求以下
如今咱們來看一看文章級聯用戶在JavaBean中的編寫方式,這是多對一在JavaBean中的配置
如今咱們再來看一看Mybatis的Mapper該如何編寫多對一?很簡單,就是在resultMap標籤中配置<association></association>標籤關聯所屬的用戶實體
 
 
4.最後咱們來探究一下Mybatis的多對多,在不少時候咱們較好的運用多對多能夠處理不少現實的邏輯問題,好比如今咱們有下面這樣一個需求
 
當前,一個用戶能夠擁有多個組,一個組也能夠擁有多個用戶,這樣的關係就是多對多,爲了解決這個問題,咱們須要再用戶和組之間創建一張關聯的表,用於存儲他們之間的對應關係,用戶和組都經過這個關聯的表,來查詢他們之間的關係
 
如今我咱們先來看一看這個關聯對象的JavaBean和其Mybatis的Mapper文件是怎麼樣的
首先是JavaBean

 

再來看看這個實體對應的Mapper文件,只有兩個功能
 
 
如今咱們開始來看咱們的主角Users用戶和Group組這兩位的JavaBean和Mapper文件時怎麼寫的
 
先看Users(用戶實體)

 

Users的Mapper
這樣查詢到的的User對用戶象就是這樣的,把這個用戶所對應的組都查了出來
Users{id=0, username='yiibai', mobile='13838009988', groups=[Group{groupId=1, groupName='Group-1', users=null}, Group{groupId=2, groupName='Group-2', users=null}]}
 
再來看看Group(組實體),其實就是和Users實體是同樣的哈
仍是看Group的JavaBean
 
再看看看Group的Mapper
這樣再查詢Group的時候就會把這個組的全部成員都查詢出來了
Group{groupId=0, groupName='Group-1', users=[Users{id=1, username='yiibai', mobile='13838009988', groups=null}, Users{id=2, username='User-name-1', mobile='13838009988', groups=null}]}
 
 
5.各位看官注意哈,本文中並無給出全部源碼,而是僅僅看重點,當前本文中的全部示例都是在下根據易百教程的Mybatis教程 https://www.yiibai.com/mybatis/中的案例所測試,在下就僅僅介紹點重點和我的看法了
相關文章
相關標籤/搜索