mybatis的一對多,多對一,以及多對對的配置和使用
1.現在我們來看一看"使用者” 級聯 “帖子”(解釋:一個使用者對應多個帖子)在JavaBean中的編寫方式,這就是一對多在JavaBean中的配置
現在我們再來看一看Mybatis的Mapper該如何編寫一對多?很簡單,就是在resultMap標籤中配置標籤,用來儲存查詢到的文章列表,注意posts代表的是使用者實體的文章List集合
小疑問: 我覺得這裡的collection標籤裡的 colum沒用,
可以參考連結如下:
https://www.cnblogs.com/kenhome/p/7764398.html
這樣Sql查詢到的內容就對映到User使用者實體中的屬性中啦,這就是一對多的查詢
2.現在我們再來探究一下Mybatis的多對一,現在有一個需求如下
現在我們來看一看文章級聯使用者在JavaBean中的編寫方式,這是多對一在JavaBean中的配置
現在我們再來看一看Mybatis的Mapper該如何編寫多對一?很簡單,就是在resultMap標籤中配置標籤關聯所屬的使用者實體
3.最後我們來探究一下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
解釋: 下圖中collectio後面的select查詢語句id(應該是UserGroupMapper裡面的select)不是下圖下面的那個select,不要搞混了,本來下圖定義的resultMap就是為了下圖定義的select而服務的,所以不要把collectio後面的select和下圖中的select搞混了
這樣再查詢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}]}
相關文章
- MyBatis 使用resultMap 以及 一對一和一對多MyBatis
- MyBatis表關聯 一對多 多對一 多對多MyBatis
- Mybatis【一對多、多對一、多對多】知識要點MyBatis
- Mybatis一對多、多對一處理MyBatis
- mybatis一對多&&多對一處理MyBatis
- MyBatis07-(多對一、一對多)MyBatis
- Mybatis09_一對一、一對多、多對多、延遲載入MyBatis
- mybatis入門基礎(六)----高階對映(一對一,一對多,多對多)MyBatis
- JPA(3) 表關聯關係(多對一、一對多、多對多、一對一)
- hibernate一對多、多對多的實體設計和配置檔案配置
- gorm 關係一對一,一對多,多對多查詢GoORM
- Spring Data JPA 之 一對一,一對多,多對多 關係對映Spring
- 多對一處理 和一對多處理的處理
- #MyBatis多表查詢 #多對一、一對多的兩種實現方式 @FDDLCMyBatis
- JPA中對映關係詳細說明(一對多,多對一,一對一、多對多)、@JoinColumn、mappedBy說明APP
- spring data jpa關聯查詢(一對一、一對多、多對多)Spring
- Spring Boot 入門系列(二十八) JPA 的實體對映關係,一對一,一對多,多對多關係對映!Spring Boot
- MyBatis加強(1)~myBatis物件關係對映(多對一關係、一對多關係)、延遲/懶載入MyBatis物件
- Rails 一對多AI
- Mybatis-技術專區-如何清晰的解決出現「多對一模型」和「一對多模型」的問題MyBatis模型
- MyBatis多對多的兩種處理方式MyBatis
- 基於MyEclipse的Hibernate的多對一和一對多操作簡單示例Eclipse
- Mybatis學習筆記(4)-高階對映之一對多對映MyBatis筆記
- EF:Fluent API 把一對多對映為一對一API
- [增刪改查] 最規範的 JPA 一對多/多對一 CRUD 示例
- MyBatis從入門到精通(十一):MyBatis高階結果對映之一對多對映MyBatis
- [增刪改查] 最簡單的 JPA 一對多/多對一 CRUD 設計
- 初試 Entity Framework Core 的多對多對映Framework
- NHibernate 多對多對映的資料更新
- MyBatis 查詢資料時屬性中多對一的問題(多條資料對應一條資料)MyBatis
- jpa一對多查詢
- 模型關聯一對多模型
- hibernate(三) 一對多對映關係
- 多對多的操作問題
- mybatis中一對多對映,但兩張表id相同怎麼辦?MyBatis
- 域名和ip是多對多的關係
- Mybatis學習筆記(5)-高階對映之多對多對映MyBatis筆記
- GoldenGate多對一複製Go