Mybatis關聯查詢(一對一,一對多)

2021-10-06 16:34:25 字數 1910 閱讀 1841

複雜查詢時,單錶對應的po類已不能滿足輸出結果集的對映。所以要根據需求建立乙個擴充套件類來作為resulttype的型別。

擴充套件類

association的使用

需要在本類中新增字段如下

resulttype:使用resulttype實現較為簡單,如果pojo中沒有包括查詢出來的列名,需要增加列名對應的屬性,即可完成對映。如果沒有查詢結果的特殊要求建議使用resulttype

resultmap:需要單獨定義resultmap,實現有點麻煩,如果對查詢結果有特殊的要求,使用resultmap可以完成將關聯查詢對映pojo的物件屬性中。

resultmap可以實現延遲載入,resulttype無法實現延遲載入。

association 和 collection 的使用

將使用者資訊對映到user中。

在user類中新增訂單列表屬性list orderslist,將使用者建立的訂單對映到orderslist

在orders中新增訂單明細列表屬性list detaillist,將訂單的明細對映到detaillist

在orderdetail中新增items屬性,將訂單明細所對應的商品對映到items

resulttype:將查詢結果按照sql列名pojo屬性名一致性對映到pojo中。

resultmap:使用association和collection完成一對一和一對多高階對映(對結果有特殊的對映要求)。

association:將關聯查詢資訊對映到乙個pojo物件中。

collection:將關聯查詢資訊對映到乙個list集合中。

association:將關聯查詢資訊對映到乙個pojo物件中。

collection:將關聯查詢資訊對映到乙個list集合中。

延遲載入又叫懶載入,也叫按需載入。也就是說先載入主資訊,在需要的時候,再去載入從資訊。

(就是先載入userlist,當使用的user中order,再通過userid載入order資訊)

在mybatis中,resultmap標籤 的association標籤和collection標籤具有延遲載入的功能。

mybatis 全域性配置檔案中增加

"lazeloadingenabled"

value

="true"

/>

mybatis詳解 關聯查詢 一對一 一對多(5)

商品訂單模型 需求 查詢所有訂單資訊,關聯查詢下單使用者資訊。注意 乙個使用者可以有多個訂單資訊,乙個訂單只能對應乙個使用者 方法1 使用resulttype 使用resulttype,改造訂單pojo類,此pojo類中包括了訂單資訊和使用者資訊 這樣返回物件的時候,mybatis自動把使用者資訊也...

Mybatis一對一關聯查詢

有兩張表,老師表teacher和班級表class,乙個class班級對應乙個teacher,乙個teacher對應乙個class 需求是根據班級id查詢班級資訊 帶老師的資訊 建立teacher和class表 create table teacher t id int primary key aut...

MyBatis高階對映之 一對一(一對多)關聯對映

在hibernate中可以進行一對一,多對一,一對多,多對多,mybatis中也可以實現這種對映,但是對映就顯得比較麻煩了,下面看乙個一對一的例子,學了hibernate都知道其實一對一跟一對多的原理其實是一致的,所以也是一對多的例子 首先配置sqlmapconfig.xml public conf...