Mybatis級聯查詢、多表查詢?來看看我怎麼簡單實現

前言

1.在這裡說幾句廢話哈。。。

2.依舊感謝各位的閱讀和關注。剛加入不久,非常感謝能支持我、關注我的朋友們。一定不讓大家失望,一定會持續不斷的更新更多的相關文章。

3.希望大家一如既往關注、支持我!!!

步入正題

1.不知道大家步入編程行業多久了,不過我相信既然大家有興趣點進來,對於單表的操作肯定是沒有任何問題的。在這裡我們就不對單表的操作做過多的贅述。

2.相信大家無在編碼、寫項目的時候,一定不會是知識簡單的單表操作。一定會存在多表關聯的問題,所以我們今天就來簡單的說一下mybatis的級聯查詢。不得不說mybatis確實是個不錯的選擇,當然也可以選擇使用我之前說過的mybatis-plus,詳情可以看我的另一篇文章, 當然大家有什麼看不懂的地方可以私信或者評論告訴我,我會一一解答。

編碼

1.假如我們現在有角色(

Roles)、權限(Permission)、用戶(User)三張表,三者實體類如下,因為我加入了lombok,所以省略掉了所有的封裝方法,詳細的使用方法可以在文章下方查看更多:

Mybatis級聯查詢、多表查詢?來看看我怎麼簡單實現

用戶

Mybatis級聯查詢、多表查詢?來看看我怎麼簡單實現

Roles、Permission

2.如果我們是網站的管理員,我們需要查看所有的角色以及它對應的權限,應該怎麼做呢,相信sql語句大家都會寫:

Mybatis級聯查詢、多表查詢?來看看我怎麼簡單實現

mapper.xml

吶,這是最簡單的兩表聯查,那麼我們怎麼對查詢到的數據進行封裝呢,一般來說我們需要封裝這樣的一個vo類RolesPermissions.java,並且為其封裝個一個對應的構造方法:

Mybatis級聯查詢、多表查詢?來看看我怎麼簡單實現

RolesPermissions

是不是顯得特別臃腫而且我們已經有了RolesPermission為什麼不直接拿來用呢,所以我認為更好的方式是這樣的:

Mybatis級聯查詢、多表查詢?來看看我怎麼簡單實現

RolesPermissions、mapper.xml

這樣的話是不是清楚了許多,在xml中的對應關係更加明確易懂,方便查看和修改!!!

3.以上是簡單的兩表聯查,那麼如果是一對多的關係應該如何處理呢?User和Roles 的關係就是一對多的關係,因為一個用戶可能不僅僅擁有一個角色,他可能即是版主又是吧主。也就是說這個vo類中會包含有一個實體類以及一個列表,那我們接著往下來!

4.我們先來封裝一個vo類UserRoles.java

Mybatis級聯查詢、多表查詢?來看看我怎麼簡單實現

UserRoles

5.可以看到上面的vo類包含有一個實體類User以及一個集合rolesList,接下來我們寫mapper.xml

Mybatis級聯查詢、多表查詢?來看看我怎麼簡單實現

mapper.xml

結束語

1.首先我們需要搞清楚mybatis的映射關係而且必須學會sql的內連接、左連接、右連接,才能實現我們需要的多表查詢。

2.乾貨不斷,希望大家多多支持,私信或者評論我,說說自己想要了解的內容!!!


分享到:


相關文章: