MyBatis關聯對映 學習

2021-09-24 12:59:41 字數 2175 閱讀 4474

本文針對mybatis的關聯對映,重點在於:

(1)不同的關聯關係(一對

一、一對多、多對多)如何建立資料表和在對應的類中建立外來鍵關聯。

(2)如何在各個類的xml對映檔案中進行配置。

在xml對映檔案中確定了什麼方法,這些方法如何實現。

1.1資料表:

tb_card 和 tb_person。

1.2資料表關聯:

在tb_person表中新增一欄card_id,和tb_card中的id進行關聯:

foreign key(card_id) references tb_card(id);
1.3類關聯:

首先分別對照tb_card和tb_person建立兩個類:card和person。然後在person類中新增乙個屬性card,用於指向某個具體的card物件。

private card card;
select * from tb_card where id = #
來看一下mybatis中一對多的關聯對映:

2.1 資料表:

tb_clazz 和 tb_student。

2.2 資料表關聯:

在資料庫中構建資料表的時候,外來鍵在多方:

在tb_student表中新增一欄clazz_id,和tb_clazz中的id進行關聯:

foreign key(clazz_id) references tb_clazz(id);
2.3 類關聯:

首先分別對照tb_clazz和tb_student建立兩個類:clazz和student。這裡是一對多關係,在student類中新增乙個屬性clazz,用於指向某個具體的clazz物件。

private clazz clazz;
select * from tb_student where clazz_id = #
select * from tb_clazz c,tb_student s

where c.id = s.clazz_id

and s.id = #

然後分別對映將結果封裝到clazz和student物件中。

3.1 資料表:

tb_user 和tb_order 和tb_article 。這裡雖然說是多對多的關聯對映,但是同時也存在一對多的關聯對映。以及乙個中間表tb_item。

tb_user—一對多—> tb_order <—多對多—> tb_article

3.2 資料表關聯:

在資料庫中構建資料表的時候,外來鍵在多方:

在tb_order表中新增一欄user_id,和tb_user中的id進行關聯:

foreign key(user_id) references tb_user(id);
但是在多和多關聯對映下,不需要再表中新增新的關聯欄。多對多可以通過構建乙個中間表來維護關係。例如訂單(tb_order)和商品(tb_article)的多對多關係,這時候可以使用中間表的訂單id(order_id)作為外來鍵來參照訂單表的id,中間表的商品id(article_id)作為外來鍵來參照商品表的id。這個表tb_item是不能夠單獨存在的,而要依賴於訂單和商品存在。

3.3 類關聯:

需要建立三個類:user、order、article這三個。

雖然建立了乙個中間表,但是這個中間表不需要對應的類。

使用新的表進行對映後,還需要在對應的類中新增相應的屬性,在訂單order類中新增商品屬性(list

articles),而商品article類中新增訂單屬性(list order)。此外,上面說過user和order還存在一對多的關係,所以還需要在order中新增乙個user屬性。order類新增屬性如下:

private user user;

private listarticles;

select * from tb_article where id in(

select article_id from tb_item where order_id = #

)

可以看到,在這裡才利用了tb_item這個表,先通過order_id查詢到所有的article_id。

MyBatis關聯對映

mybatis關聯對映 將多個表記錄提取,封裝成具有關聯關係的物件。關係型別 分為單個物件關聯和多個物件關聯 cn user user物件 cn notebook book物件 cn user cn notebook 具有物件關聯關係的物件 book user 乙個book對應乙個user user...

mybatis的關聯對映

在查詢時經常需要獲取兩個或兩個以上關聯表的資料,通過關聯對映可以由乙個物件獲取相關聯物件的資料。例如查詢乙個emp員工物件,可以通過關聯對映獲取員工所在部門的dept物件資訊。mybatis的關聯對映有以下兩種不同的表現形式 巢狀查詢 select from emp where empno sele...

MyBatis學習筆記(三)關聯關係對映

在學習mabatis 的過程中,接觸到了關聯關係對映,認為這是乙個很重要的點,所以在這裡做乙個總結,進而強化知識。關聯關係對映我們說直白一點就是用於處理多表查詢嗦得出的結果。此時,mybatis不能把結果集直接對映到我們的pojo上,所以,我們有一種方法便是建立乙個vo物件,結果集裡有什麼列,vo物...