真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

利用mybatis框架實(shí)現(xiàn)一個(gè)一對(duì)多查詢功能

這篇文章將為大家詳細(xì)講解有關(guān)利用mybatis框架實(shí)現(xiàn) 一個(gè)一對(duì)多查詢功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),海州網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:海州等地區(qū)。海州做網(wǎng)站價(jià)格咨詢:13518219792

首先,我們還是先給出一個(gè)需求:根據(jù)訂單id查詢訂單明細(xì)——我們知道,一個(gè)訂單里面可以有多個(gè)訂單的明細(xì)(需求不明確的同學(xué),請(qǐng)留言或者去淘寶網(wǎng)上的訂單處點(diǎn)一下就知道了)。這個(gè)時(shí)候,一個(gè)訂單,對(duì)應(yīng)多個(gè)訂單的id。這種需求出現(xiàn)的時(shí)候,我們應(yīng)該如何查詢呢?

此時(shí)我們的數(shù)據(jù)模型如下圖(左)由于查詢用戶也是我們的需求,所以就在原有的基礎(chǔ)上進(jìn)行擴(kuò)展,數(shù)據(jù)模型如下(右):

利用mybatis框架實(shí)現(xiàn) 一個(gè)一對(duì)多查詢功能利用mybatis框架實(shí)現(xiàn) 一個(gè)一對(duì)多查詢功能

很顯然,如果用resultType的方式去實(shí)現(xiàn)的話,是不合理的了。因?yàn)槲覀冃枰獎(jiǎng)?chuàng)建一個(gè)既有訂單又有訂單明細(xì)的pojo然后呢,我們的mybatis框架會(huì)為我們映射出很多個(gè)pojo對(duì)象(有多少個(gè)訂單明細(xì)就有多少個(gè)對(duì)象)。

所以我們需要使用resultMap的方式進(jìn)行處理。解決問(wèn)題的思路是:在orders類中增加一個(gè)訂單明細(xì)的List字段將list的類型定義為Orderdetail類型。然后通過(guò)配置文件,將得到的數(shù)據(jù),通過(guò)resultMap的collection標(biāo)簽進(jìn)行映射到list中。

具體實(shí)現(xiàn)如下:

  sql語(yǔ)句

確定主查詢表:訂單表

確定關(guān)聯(lián)查詢表:訂單明細(xì)表

在一對(duì)一查詢基礎(chǔ)上添加訂單明細(xì)表關(guān)聯(lián)即可。

SELECT 
 orders.*,
 USER.username,
 USER.sex,
 USER.address,
 orderdetail.id orderdetail_id,
 orderdetail.items_id,
 orderdetail.items_num,
 orderdetail.orders_id
FROM
 orders,
 USER,
 orderdetail
WHERE orders.user_id = user.id AND orderdetail.orders_id=orders.id

  問(wèn)題展示

查詢完畢以后,我們發(fā)現(xiàn)了一個(gè)問(wèn)題:如圖所示,我們的id出現(xiàn)了多條,這是因?yàn)閿?shù)據(jù)庫(kù)中對(duì)應(yīng)的多個(gè)訂單詳情共同使用一個(gè)訂單id導(dǎo)致的。這就導(dǎo)致了每條記錄中都會(huì)出現(xiàn)一個(gè)orders的記錄。具體解決辦法,開(kāi)始的時(shí)候就說(shuō)了,這里就不再贅述了。

利用mybatis框架實(shí)現(xiàn) 一個(gè)一對(duì)多查詢功能

在orders中添加list訂單明細(xì)屬性

利用mybatis框架實(shí)現(xiàn) 一個(gè)一對(duì)多查詢功能

定義resultMap


  
    
    
    
    
     
       
       
       
       
       
     
  

利用mybatis框架實(shí)現(xiàn) 一個(gè)一對(duì)多查詢功能 

mapper  

利用mybatis框架實(shí)現(xiàn) 一個(gè)一對(duì)多查詢功能

  總結(jié)

其實(shí)就是使用resultMap的collection對(duì)關(guān)聯(lián)查詢的多條記錄映射到一個(gè)list集合屬性中。

關(guān)于利用mybatis框架實(shí)現(xiàn) 一個(gè)一對(duì)多查詢功能就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


分享標(biāo)題:利用mybatis框架實(shí)現(xiàn)一個(gè)一對(duì)多查詢功能
文章分享:http://weahome.cn/article/psijss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部