2019-03-20 一對一查詢

需求

查詢訂單信息,關(guān)聯(lián)查詢創(chuàng)建訂單的用戶信息

resultType

sql語句

確定查詢的主表,訂單表
確定查詢的關(guān)聯(lián)表,用戶表

SELECT orders.*,
                `user`.username,
                user.sex,
                `user`.address
FROM orders,user where orders.user_id = user.id

創(chuàng)建pojo

將上邊sql查詢的結(jié)果映射到pojo上中,pojo中必須包括所有查詢列名
原始的Order.java不能映射全部字段,需要新創(chuàng)建的pojo。
創(chuàng)建一個(gè)pojo繼承包括查詢字段較多的po類


mapper.xml

mapper.java

測試代碼

resultMap

sql語句

確定查詢的主表,訂單表
確定查詢的關(guān)聯(lián)表,用戶表

SELECT orders.*,
                user.username,
                user.sex,
                user.address
FROM orders,user where orders.user_id = user.id

使用resultMap映射的思路

使用resultMap將查詢結(jié)果中的訂單信息映射到Orders對象中,在Orders類中添加User屬性,將關(guān)聯(lián)查詢出來的用戶信息映射到Orders對象中User屬性中。
需要Orders類中添加user屬性:


resultMap配置

mapper.xml

mapper.java

測試代碼

resultType和resultMap實(shí)現(xiàn)一對一查詢小結(jié)

實(shí)現(xiàn)一對一查詢:
resultType:使用resultType實(shí)現(xiàn)較為簡單,如果pojo中沒有包括查詢出來的列名 ,需要增加列名對應(yīng)的屬性,即可完成映射。
如果沒有查詢結(jié)果的特殊要求建議使用resultType。

resultMap:需要單獨(dú)定義resultMap,實(shí)現(xiàn)有點(diǎn)麻煩,如果對查詢結(jié)果有特殊的要求,使用resultMap可以完成將關(guān)聯(lián)查詢映射pojo屬性中。
resultMap可以實(shí)現(xiàn)延遲加載,resultType無法實(shí)現(xiàn)延遲加載。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容