標籤:

Mybatis5:resultMap與resultType總結

resultType:

作用:

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

場合:

常見一些明細記錄的展示,比如用戶購買商品明細,將關聯查詢信息全部展示在頁面時,此時可直接使用resultType將每一條記錄映射到pojo中,在前端頁面遍歷list(list中是pojo)即可。

resultMap:

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

association:

作用:

將關聯查詢信息映射到一個pojo對象中。

場合:

為了方便查詢關聯信息可以使用association將關聯訂單信息映射為用戶對象的pojo屬性中,比如:查詢訂單及關聯用戶信息。

例如我們前面例子中在pojo類中直接定義private User user;如果需求時返回User對象,那麼我們定義方法getUser就可以直接返回了,比較方便。

所以要根據需求決定。

使用resultType無法將查詢結果映射到pojo對象的pojo屬性中,根據對結果集查詢遍歷的需要選擇使用resultType還是resultMap。

collection:

作用:

將關聯查詢信息映射到一個list集合中。

場合:

為了方便查詢遍歷關聯信息可以使用collection將關聯信息映射到list集合中,比如:查詢用戶許可權範圍模塊及模塊下的菜單,可使用collection將模塊映射到模塊list中,將菜單列表映射到模塊對象的菜單list屬性中,這樣的作的目的也是方便對查詢結果集進行遍歷查詢。

如果使用resultType無法將查詢結果映射到list集合中。


推薦閱讀:

如何在mybatis中調試查看生成的sql語句?
Mybatis4:訂單商品模型分析+高級映射
Mybatis7:查詢緩存

TAG:MyBatis |