Mybatis一對多查詢

2021-10-23 15:22:49 字數 718 閱讀 6624

mybatis中有兩個標籤,association和collection,這兩個標籤都有兩種用法:

一種是如下方式一可以與查詢繫結在一起,使用這種方式association和collection的效果是一樣的,都可以進行一對多和一對一的查詢,但這種方式會進行n*m次查詢,在資料量非常大的情況下不推薦使用這種方式;

select * from teacher where id = #

select * from student where tid = #

另一種是可以直接新增resultmap到這兩個標籤內,然後直接用關聯查詢父子表,然後mybatis會自己對查詢出的物件進行整合,這樣就是只有一次查詢。但是這種方式association和collection就會有區別了,association只支援一對一,而collection支援一對多。

這裡有個小坑就是需要在resultmap裡標識出id,否則就會出現一對多物件中的list屬性只有一條資料的情況。

select s.id sid, s.name sname , t.name tname, t.id tid

from teacher t

left join student s on s.tid = t.id

where t.id=#

把標籤換成association即可進行一對一的查詢操作。非常方便。

mybatis 一對多查詢

查詢訂單及訂單明細的資訊。這裡怎麼體現了一對多 這裡orders的id出現重複的記錄,無法對映到orders類中 collection 對關聯查詢到多條記錄對映到集合物件中 4 查詢訂單 關聯使用者 及訂單明細 public listfindordersandorderdetailresultmap...

mybatis 一對多查詢

與phoenix不同,在mysql中查詢的結果不會按照id預設排序。所以如果頁面有隱含的順序要求 兩次呼叫,列表順序不變 此時千萬不要使用set,而應該使用list。接下來進入正題 直接上 public class userpublic class order 根據id查詢使用者,並且查詢出該使用者...

mybatis 一對多查詢

準備階段 乙個老師對應多個學生 1.建表 2.編寫實體類 package com.lv.pojo import lombok.data data public class student package com.lv.pojo import lombok.data import j a.util.l...