resultmap返回類(lèi)型 resultmap與resulttype有什么區(qū)別?
resultmap與resulttype有什么區(qū)別?當(dāng)使用mybatis進(jìn)行數(shù)據(jù)庫(kù)連接操作時(shí),通常有兩種方法來(lái)處理SQL語(yǔ)句返回的結(jié)果:一種是resulttype;另一種是resultmap:1。Re
resultmap與resulttype有什么區(qū)別?
當(dāng)使用mybatis進(jìn)行數(shù)據(jù)庫(kù)連接操作時(shí),通常有兩種方法來(lái)處理SQL語(yǔ)句返回的結(jié)果:一種是resulttype;另一種是resultmap:1。Resulttype:當(dāng)使用Resulttype處理SQL語(yǔ)句返回的結(jié)果時(shí),SQL語(yǔ)句查詢(xún)的字段必須在對(duì)應(yīng)的POJO中有與其對(duì)應(yīng)的字段,而Resulttype中的字段必須有與其對(duì)應(yīng)的字段,這是POJO在本項(xiàng)目中的位置。因此,對(duì)于單表查詢(xún),使用resulttype是最合適的。2Resultmap:在使用Resultmap處理SQL語(yǔ)句的返回結(jié)果類(lèi)型時(shí),通常需要使用映射器.xml定義resultmap以對(duì)應(yīng)POJO和相應(yīng)的表字段。Resultmap通常通過(guò)將嵌套在另一個(gè)表中的POJO添加到主表的POJO,然后添加嵌套在另一個(gè)表中的POJO來(lái)處理一對(duì)一的表聯(lián)接映射器.xml三。Resulttype直接表示返回類(lèi)型(對(duì)應(yīng)于我們模型對(duì)象中的實(shí)體),resultmap表示外部resultmap(預(yù)先定義的dB和Mo),但是Resulttype和resultmap不能同時(shí)存在。
ResultMap和ResultType在使用中的區(qū)別?
使用mybatis進(jìn)行數(shù)據(jù)庫(kù)連接操作時(shí),通常有兩種方式來(lái)處理SQL語(yǔ)句返回的結(jié)果,一種是resulttype,另一種是resultmap:
使用resulttype處理SQL語(yǔ)句返回的結(jié)果時(shí),SQL語(yǔ)句查詢(xún)的字段必須有與之對(duì)應(yīng)的相同字段它位于相應(yīng)的POJO中,resulttype中的內(nèi)容是該項(xiàng)目中的POJO位置。
因此,使用resulttype進(jìn)行單表查詢(xún)最為合適
使用resultmap處理SQL語(yǔ)句的返回結(jié)果類(lèi)型時(shí),通常需要使用映射器.xml定義resultmap以對(duì)應(yīng)POJO和相應(yīng)的表字段。
Resultmap通常通過(guò)將嵌套在另一個(gè)表中的POJO添加到主表的POJO來(lái)處理一對(duì)一的表聯(lián)接,然后添加嵌套在另一個(gè)表中的POJO映射器.xml關(guān)聯(lián)節(jié)點(diǎn)元素用于聯(lián)接另一個(gè)表
resultmap是對(duì)外部resultmap的引用(dB和model之間的隱式鍵-->value關(guān)系是預(yù)先定義的),但resulttype和resultmap不能同時(shí)鏈接。
怎么設(shè)置sqlStatementName和resultType屬?
在mybatis中,選擇和映射查詢(xún)時(shí),返回類(lèi)型可以是resulttype或resultmap。Resulttype直接表示返回類(lèi)型,resultmap表示外部resultmap,但Resulttype和resultmap不能同時(shí)存在。在mybatis執(zhí)行查詢(xún)映射時(shí),實(shí)際上,找到的每個(gè)屬性都放在一個(gè)對(duì)應(yīng)的映射中,其中鍵是屬性名,值是對(duì)應(yīng)的值。
①當(dāng)返回類(lèi)型屬性為resulttype時(shí),mybatis將從分配給resulttype指定的對(duì)象的相應(yīng)屬性中檢索映射中的鍵值對(duì)。因此,實(shí)際上,mybatis中每個(gè)查詢(xún)映射的返回類(lèi)型都是resultmap。只有當(dāng)提供的返回類(lèi)型屬性是resulttype時(shí),mybatis才會(huì)自動(dòng)將相應(yīng)的值賦給resulttype指定的對(duì)象的屬性。
②當(dāng)提供的返回類(lèi)型為resultmap時(shí),由于map不能很好地表示域模型,需要進(jìn)一步將其轉(zhuǎn)換為相應(yīng)的對(duì)象,這在復(fù)雜的查詢(xún)中往往非常有用。