mybatis--對象關系映射細節詳解


對象關系映射

在實際開發中,實體類之間有一對一、一對多、多對多的關系,所以需要正確配置它們對應關系,Mybatis通過配置文件能夠從數據庫中獲取列數據后自動封裝成對象。

1.泛化關系--------->>(繼承關系)

2.實現關系 ----------->>>(實現關系)

3.依賴關系 ----------------->>>(體現在某個A類引用另外一個B類作為A類的成員變量或者方法中)

4.關聯關系---->(重點)

4.1關聯關系----->>>>>>一對一(分為單向和雙向)

4.2關聯關系------->>>>>多對一(單向)

 

4.3關聯關系------->>>>>一對多(單向)

 

4.4關聯關系------->>>>>一對多和多對一(雙向)

 

4.關聯關系----------->>>>>>多對多

 

5.聚合關系--------->>>(體現在一個A類中引用另外一個B類作為A類的成員變量中,缺少這個引用他不會出錯)

 

6.組合關系-------->>>>(體現在一個A類中引用量另外一個B類作為A類的成員變量,但是這個B類的引用是多個,比如是集合類型或者數組類型)

以上就是對象映射關系的分類和詳解,但是上面只是說了在程序中的關聯關系,在下面再說一下這些映射關系在數據庫設計表的時候,具體是怎么回事

 

-------------------------------------------------------------------------------------------------------------------------

1.泛化關系表的設計

比如普通用戶, 員工, 客戶這三個表的設計, 分了三種設計思想: (1)直接共用一張表;需要加上一列用來區分不同類型   (2)每個子類設計一張表; 把普通用戶設計成一個表, 由於員工和客戶是普通用戶的子類, 所以在普通用戶表中會有所有人的字段,  但是由於員工他有salary列並且客戶有address這個列, 因此使用普通用戶表來存他們共有的字段, 然后再使用員工表和客戶表來存儲他們各自擁有的屬性  (3)每個類簡歷一個表,這種比較容易理解,不用細說

2.實現關系表的設計和依賴關系表的設計跟泛化關系表的設計雷同,省略

3.關聯關系表的設計

3.1一對一

3.2一對多(跟多對一表設計一樣)

4.3多對多表的設計

引入另外一張表,把這兩個表的主鍵存放在另一張表中

 

5集合關系和組合關系表的設計是一致的,兩個一塊弄了

 

 

 

 

======================================================================================

 

以上就是關聯映射的細節詳解,最重要的,難理解的就是關聯關系的那部分,另外附關聯關系中一對多或者多對一中在查詢的時候會存在額外sql的問題的圖的兩種解決辦法

 

 

 

 

解決方案:

1.是在查詢的時候發送一條額外sql, 如下圖

 

 2.使用內聯映射,利用多表連接查詢

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM