mybatis多表查詢

2021-09-29 16:41:59 字數 1908 閱讀 6324

mybatis多表查詢

(1)表之間的關係用幾種: (1) 一對一 (2 )一對多 (3)多對一 (4)多對多

舉例:

使用者和訂單就是多對一

訂單和使用者就是多對一

乙個使用者可以有多個訂單

多個訂單屬於乙個使用者

老師和學生就是多對多

乙個老師可以教多個學生

乙個學生可以被多個老師交過。

特例:如果咋天就乙個訂單。他的使用者就他乙個。所以mybatis就把多對一看成了一對一。

(2)mybatis中的多表查詢:

示例:使用者和賬戶

乙個使用者可以擁有多個賬戶。

乙個賬戶只能擁有乙個使用者 (多個賬戶也可以屬於同乙個使用者)

步驟:(1):連兩張表:使用者表 ,賬戶表。

讓使用者表和賬戶表之間具備一對多的關係:需要使用外來鍵在賬戶表中(多的一方)中新增。

(2):建立兩個實體類:使用者實體類和賬戶實體類。

讓使用者和賬戶的實體類能體現出一對多的關係

(3):建立兩個配置檔案:

使用者配置檔案

賬戶配置檔案

(4):實現配置:

當我們查詢使用者時,可以同時得到使用者下所包含的賬戶資訊

當我們查詢賬戶時,可以同時得到所屬使用者得資訊

(3)一對多查詢

在主表中加入從表的資訊: 一對多關係對映,主表實體應該包含從表實體的集合引用

private list

account;

get(

) and set()

;//這就有了list

在主表的iuserdao.xml中定義user的resultmap

<

!-- 定義user的resultmap --

>

"useraccountmap" type=

"user"

>

"id" column=

"id"

/>

"username" column=

"username"

/>

"***" column=

"***"

/>

"address" column=

"address"

/>

"birthday" column=

"birthday"

/>

<

!-- 配置user物件中account集合的對映 --

>

"accounts" oftype=

"account"

>

//property="accounts"是實體list的別名

"id" column=

"aid"

/>

"uid" column=

"uid"

/>

"money" column=

"money"

/>

<

/collection>

<

/resultmap>

(4)多對多查詢。

示例:使用者和角色

乙個使用者可以有多個角色

乙個角色可以賦予多個使用者

步驟:1. 建立兩張表:使用者表 角色表

讓使用者表和角色表具有多對多的關係。需要使用中間表,中間表包括各自的主鍵,在中間表中是外來鍵。

2. 建立兩個實體類:使用者實體類 和 角色實體類

使用者和角色的實體類能體現出來多對多的關係

各自包含對方乙個集合引用

3. 建立兩個配置檔案

使用者配置檔案

角色配置檔案

4. 實現配置

當我們查詢使用者時,可以同時得到使用者下所包含的角色資訊

當我們查詢賬戶時,可以同時得到角色的所屬使用者資訊。

Mybatis多表查詢

首先。我們需要知道,表與表之間存在的幾種關係 一對一 一對多 多對一 多對多舉例 班級與學生 class表 students表 建立兩個實體類 classs表 public class classs public classs string classid public intgetid publi...

mybatis多表查詢

mybatis多表操作 一 實體間存在關係的 a 關聯關係 從屬 i.人 身份證 1 1 ii.人 訂單 1 iii.老師 學生 二 mybatis怎樣事處理關聯關係?a 實體 關係屬性 將關係一方當作另一方的屬性 方向性 單向 只能通過一方去查詢另一方 雙向 可以通過雙方都找到另一方 級聯查詢 p...

mybatis註解多表查詢

查詢所有賬戶,並且獲取每個賬戶所屬的使用者資訊 建立兩個實體類 user public class user implements serializable建立兩個dao介面 iaccountdao public inte ce iaccountdao listfindall iuserdao pu...