Mybatis入門 關聯查詢 八

2021-10-12 12:43:27 字數 766 閱讀 8212

maybatis中在查詢進行select對映的時候,返回型別可以用resulttype,也可以用resultmap

resulttype是直接表示返回型別的(對應著我們的model物件中的實體)

resultmap則是對外部resultmap的引用(提前定義了db和model之間的對映key->value關係)

resulttype和resultmap不能同時存在

如果能確認返回資訊在乙個完整實體類中推薦用resulttype,返回資訊不在乙個完整實體類中推薦用resultmap

這裡我們舉個例子

在這裡插入描述

如果我們返回的資料為:員工編號,員工姓名,職位,這些資訊都在emp表中,那用resulttype

如果我們返回的資料為:員工編號,員工姓名,職位,對應的部門編號,部門名稱,部門位址,這些資訊存在於emp和dept表,需要做關聯,那用resultmap

在mybatis進行查詢對映時,其實查詢出來的每乙個屬性都是放在乙個對應的map裡面,其中鍵是屬性名,值是其對應的值。

當提供的返回型別屬性的resulttype是,mybatis會將map裡面的鍵值對取出賦給resulttype所指定的物件對應屬性。所以其實mybatis的每乙個查詢對映的返回型別都是resultmap,只是當提供的返回型別屬性是resulttype時,mybatis對自動的給把對應的值賦給resulttype所指定物件的屬性

當提供的返回型別是resultmap時,因為map不能很好表示領域模型,就需要自己再進一步的把它轉化為對應的物件,這常常在複雜查詢中很有作用。

mybatis關聯查詢

備註 1 type是實體類 2 id是唯一標識,是resulmap指定的標識 4 collection是集合對映,用於多個物件 association是用於單個物件 5 如果裡面有collection,又有association,應該把association放前面,不然會報錯 6 無論是associ...

mybatis級聯 關聯 查詢

級聯 關聯 查詢,mybatis已經有了很好的支援,配置也相當簡單,示例 一種是一對一的,一種是一結多的,association用於前者,collection用於後者。下面都有相應配置。當然一對一的,可以直接配置在一起,就不用兩次查詢了。select from school where id sel...

MyBatis學習之路(關聯查詢)

1.一對一關聯 mybatis中使用association標籤來解決一對一的關聯查詢,association標籤可用的屬性如下 方法1 使用巢狀結果對映來處理,封裝聯表查詢的結果 select from class c,teacher t where c.teacher id t.t id and ...