Mybatis多表查詢

2021-10-25 18:10:58 字數 3835 閱讀 7245

首先。我們需要知道,表與表之間存在的幾種關係:

一對一

一對多(多對一)

多對多舉例:班級與學生

class表:

students表:

建立兩個實體類:classs表:

public

class

classs

public

classs

(string classid)

public

intgetid()

public

void

setid

(int id)

public string getclassid()

public

void

setclassid

(string classid)

public set

getst()

public

void

setst

(set

st)@override

public string tostring()

';}}

students表:

package org.example.pojo;

public

class

students

public

students

(string name)

public string getname()

public

void

setname

(string name)

@override

public string tostring()

';}}

在dao層的介面中

classs selectbystudentid

(int id)

;

對於多表查詢,有兩種查詢方式:
多表單獨查詢

"selectbystudentid"

resultmap

="selectbystudents"

>

select id,classid from class where id=#

select

>

//通過id查詢class表的相關屬性,將結果封裝到resultmap中

"selectbystudents"

type

="org.example.pojo.classs"

>

property

="id"

column

="id"

/>

property

="classid"

column

="classid"

/>

property

="st"

column

="id"

oftype

="students"

select

="selectbyst"

/>

resultmap

>

//對resultmap中的字段進行手動對映

"selectbyst"

resulttype

="org.example.pojo.students"

>

select id,name from students where classid=#

select

>

//將class表返回的id傳到students表中查詢相關屬性

多表連線查詢

"selectbystudentid"

resultmap

="classmap"

>

select class.id as cid,classid,studnet.id as sid,name,from class left join on studnet.cid=class.id where student.id=#

select

>

"classmap"

type

="org.example.pojo.classs"

>

property

="id"

column

="cid"

/>

property

="classid"

column

="classid"

/>

property

="st"

oftype

="students"

>

property

="id"

column

="sid"

/>

property

="name"

column

="sname"

/>

collection

>

resultmap

>

type:對應的實體類

id:針對主鍵

result:普通屬性

collection:關聯屬性

property:對應的實體類中的屬性名

colum:資料庫表中的列名

oftype:關聯屬性的的資料型別。如果是集合,應寫集合內元素的型別。

總結:

mybatis多表查詢

mybatis多表查詢 1 表之間的關係用幾種 1 一對一 2 一對多 3 多對一 4 多對多 舉例 使用者和訂單就是多對一 訂單和使用者就是多對一 乙個使用者可以有多個訂單 多個訂單屬於乙個使用者 老師和學生就是多對多 乙個老師可以教多個學生 乙個學生可以被多個老師交過。特例 如果咋天就乙個訂單。...

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...