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

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

Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)-創(chuàng)新互聯(lián)

三種關(guān)聯(lián)關(guān)系:一對多,一對一,多對多

瀍河網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,瀍河網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為瀍河千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的瀍河做網(wǎng)站的公司定做!

兩種查詢方式:嵌套查詢,連接查詢(也可稱作:多表單獨(dú)查詢,多表連接查詢)

每一種關(guān)聯(lián)關(guān)系都可以通過嵌套查詢和連接查詢來實(shí)現(xiàn)。

嵌套查詢相當(dāng)于進(jìn)行了兩次查詢,而連接查詢將兩張表連接然后再進(jìn)行查詢,這樣只進(jìn)行了一次查詢

由于數(shù)據(jù)表要對實(shí)體類進(jìn)行映射,所以每一種關(guān)聯(lián)關(guān)系中都需要在java類中定義屬性來進(jìn)行關(guān)聯(lián),可以通過如圖關(guān)聯(lián):

Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)

一對一查詢

數(shù)據(jù)表實(shí)現(xiàn):通過A表的主鍵引用B表的主鍵作為外鍵,就是說在A中主鍵和外鍵同一字段。

查詢方式:嵌套查詢,連接查詢;

關(guān)系:丈夫和妻子(Husband? Wife)

嵌套查詢實(shí)現(xiàn):

Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)

在實(shí)體類husband中關(guān)聯(lián)wife,進(jìn)行連接查詢之后,需要使用resultMap對查出來的結(jié)果進(jìn)行結(jié)果映射;

resultMap中type屬性指定映射的類型;id標(biāo)簽為主鍵,result為普通屬性;

association標(biāo)簽指定關(guān)聯(lián)一個(gè)類,property屬性是它在數(shù)據(jù)表中的屬性名,javaType是關(guān)聯(lián)屬性的java類型;

連接查詢實(shí)現(xiàn):

Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)

其中association標(biāo)簽中:

select屬性: 加載另外一個(gè)映射語句,可以加載這個(gè)屬性映射需要的復(fù)雜類型,(就是可以再加載指定的映射類型)

column屬性:用于給select傳遞參數(shù),可以將已經(jīng)獲取到的屬性值,傳遞給目標(biāo) select 語句作為參數(shù);

一對多查詢

數(shù)據(jù)表實(shí)現(xiàn):使用一個(gè)外鍵進(jìn)行關(guān)聯(lián),外鍵放在多方的表中;

關(guān)聯(lián)屬性:可以寫在一方的實(shí)體類中也可以寫在多方的實(shí)體類中;

  1. 寫在一方中,使用list或別的集合進(jìn)行關(guān)聯(lián)(一方找多方)
  2. 寫在多方中,定義關(guān)聯(lián)對象屬性(通過多方找一方)

以多表連接查詢?yōu)槔?/strong>

關(guān)系:一個(gè)國家對應(yīng)多個(gè)部長

Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)

通過resultMap進(jìn)行結(jié)果映射,collection標(biāo)簽可以指定映射的集合,其中porperty屬性指定的是該關(guān)聯(lián)屬性的名稱,ofType指定的是集合里面的java類型,id,result標(biāo)簽同resultMap中的一樣是對集合里面的屬性進(jìn)行映射;

多表單獨(dú)查詢(嵌套查詢):

Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)

與一對一中類似,在resultMap的collection中聲明中元素類型,然后插入?yún)?shù),將查詢結(jié)果進(jìn)行映射;

自關(guān)聯(lián)查詢:

數(shù)據(jù)表:一張數(shù)據(jù)表中包含著所有的條目,條目之間為一對多的關(guān)系(一個(gè)欄目下面包含著多個(gè)欄目)

查詢方式:連接查詢(自己連接自己)和嵌套查詢(調(diào)用自身查詢)

嵌套查詢為例:

Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)

這是通過父欄目查詢子欄目的自關(guān)聯(lián)查詢:

在resultMap中collection的select中調(diào)用原來的查詢語句進(jìn)行查詢,形成一個(gè)循環(huán)調(diào)用,一直到查詢到的子欄目為空的時(shí)候停止;最后對查詢結(jié)果進(jìn)行映射。

當(dāng)然,也可通過子欄目查找它的所有的父欄目;

多對多查詢

數(shù)據(jù)表:需要用一張中間表表示多對多的關(guān)系,這張中間表引入兩張表的主鍵作為外鍵;

查詢方式:

  1. 多表連接查詢,不需要定義中間表實(shí)體類
  2. 多表嵌套查詢,需要定義中間表實(shí)體類
  3. 多表復(fù)雜查詢,不需要定義中間表實(shí)體類,但是返回值是一個(gè)List;

多表嵌套查詢定義中間實(shí)體類:

由于兩張表之間分別單獨(dú)查詢,需要通過中間表查找關(guān)聯(lián)并使用resultMap進(jìn)行映射關(guān)系處理,resultMap需要指明映射的java的類,并在實(shí)體類中定義關(guān)聯(lián)屬性才可以得到關(guān)聯(lián)屬性的信息;簡單來說:一張表查詢完之后想要得到另一張表的信息,實(shí)際上是通過中間表來進(jìn)行映射得到另一張表的信息的;

多表復(fù)雜查詢:通過一張表先和中間表進(jìn)行連接查詢,然后再查詢另一張表的信息;

Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)

復(fù)雜查詢返回值是一個(gè)List:

由于一張表先和中間表連接,而中間表是多對多的關(guān)系;所以得到一個(gè)一對多的List形式查詢結(jié)果;

類似這樣一對多:

Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)

總結(jié):

實(shí)際上除了數(shù)據(jù)庫的知識以外,Mybatis中的關(guān)聯(lián)關(guān)系實(shí)現(xiàn),主要通過resultMap來實(shí)現(xiàn)的

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。


網(wǎng)頁名稱:Mybatis中三種關(guān)聯(lián)關(guān)系的實(shí)現(xiàn)-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://weahome.cn/article/dsspoc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部