首先。我們需要知道,表與表之間存在的幾種關係:
一對一
一對多(多對一)
多對多舉例:班級與學生:
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...