resultType和resultMap的區別

2021-08-03 19:41:34 字數 785 閱讀 7129

在使用mybatis進行資料庫連線操作時對於sql語句返回結果的處理通常有兩種方式,一種就是resulttype另一種就是resultmap,下面說下我對這兩者的認識和理解:

resulttype:當使用resulttype做sql語句返回結果型別處理時,對於sql語句查詢出的字段在相應的pojo中必須有和它相同的字段對應,而resulttype中的內容就是pojo在本專案中的位置。

因此對於單錶查詢的話用resulttype是最合適的。但是,如果在寫pojo時,不想用資料庫表中定義的欄位名稱,也是可以使用resultmap進行處理對應的。多表連線查詢時,若是一對一的連線查詢,那麼需要新建乙個pojo,pojo中包括兩個表中需要查詢出的所有的字段,這個地方的處理方式通常為建立乙個繼承乙個表字段的pojo,再在裡面新增另外乙個表內需要查詢出的字段即可。若是一對多查詢時,若是使用內連線查詢,則很可能出現查詢出的字段有重複。使用雙重for迴圈巢狀處理即可。

若是一對多的表連線方式,比如訂單表和訂單明細表即為一對多連線,若是不對sql語句進行處理,由於乙個訂單對應多條訂單明細,因此查詢出的結果對於訂單表資料來說將會出現重複,例如:

collection:對關聯查詢到多條記錄對映到集合物件中

property:將關聯查詢到多條記錄對映到cn.itcast.mybatis.po.orders哪個屬性

oftype:指定對映到list集合屬性中pojo的型別

在查詢時,雖然一條訂單資訊對應多條訂單明細,由於將多條資訊明細儲存到了list中,因此查詢後將不再出現重複資料,達到了去重的效果。

resultMap 和resultType的區別

如果你搜尋只是返回乙個值,比如說string 或者是int,那你直接用resulttype就行了。但是你如果是返回乙個複雜的物件,就必須定義好這個物件的resultmap的result map。舉個例子吧,例子以ibatis為例 你有個user 物件,擁有兩個欄位id,name。1.你要獲取id為1...

resultType和resultMap的描述

resulttype 返回值的型別 一條記錄轉換後的欸寫可以選擇vo,map或者基本資料型別 resultmap標記,高階表及,作用是將查詢結果與vo物件作對映 即將查詢出來的字段與物件中的屬性做乙個對映 resultmap id type id 此結果對映的唯一標記 type 被對映的型別 id ...

resultType和resultMap的使用場景

resulttype 作用 將查詢結果按照sql列名pojo屬性名一致性對映到pojo中。場合 常見一些明細記錄的展示,比如使用者購買商品明細,將關聯查詢資訊全部展示在頁面時,此時可直接使用resulttype將每一條記錄對映到pojo中,在前端頁面遍歷list list中是pojo 即可。resu...