resultmap 動態sql中的foreach

大家好,今天來為大家分享resultmap的一些知識點,和動態sql中的foreach的問題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很...
大家好,今天來為大家分享resultmap的一些知識點,和動態sql中的foreach的問題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很大概率可以解決您的問題,接下來我們就一起來看看吧!
resulttype和resultmap的區別
主要區別如下:
1、resultType:當使用resultType做SQL語句返回結果類型處理時,對于SQL語句查詢出的字段在相應的pojo中必須有和它相同的字段對應,而resultType中的內容就是pojo在本項目中的位置。
因此對于單表查詢的話用resultType是最合適的
2、resultMap:當使用resultMap做SQL語句返回結果類型處理時,通常需要在mapper.xml中定義resultMap進行pojo和相應表字段的對應。
resultMap對于一對一表連接的處理方式通常為在主表的pojo中添加嵌套另一個表的pojo,然后在mapper.xml中采用association節點元素進行對另一個表的連接處理
3、resultType是直接表示返回類型的(對應著我們的model對象中的實體)
resultMap則是對外部ResultMap的引用(提前定義了db和model之間的隱射key-->value關系),但是resultType跟resultMap不能同時存在。
MyBatis中resultMap=“Map”和resultType=“Map”區別
MyBatis中在查詢進行select映射的時候,返回類型可以用resultType,也可以用resultMap,resultType是直接表示返回類型的,而resultMap則是對外部ResultMap的引用,但是resultType跟resultMap不能同時存在。在MyBatis進行查詢映射的時候,其實查詢出來的每一個屬性都是放在一個對應的Map里面的,其中鍵是屬性名,值則是其對應的值。
當提供的返回類型屬性是resultType的時候,MyBatis會將Map里面的鍵值對取出賦給resultType所指定的對象對應的屬性。所以其實MyBatis的每一個查詢映射的返回類型都是ResultMap,只是當我們提供的返回類型屬性是resultType的時候,MyBatis對自動的給我們把對應的值賦給resultType所指定對象的屬性,而當我們提供的返回類型是resultMap的時候,因為Map不能很好表示領域模型,我們就需要自己再進一步的把它轉化為對應的對象,這常常在復雜查詢中很有作用。
map函數的輸入輸出和處理過程
map函數的輸入是一個函數和一個可迭代對象(如列表、元組等),輸出是一個迭代器。處理過程如下:1.map函數將傳入的可迭代對象按照順序取出其中的元素。2.對每個元素應用傳入的函數,即將每個元素作為參數傳遞給函數,得到函數的返回值。3.將每個元素的處理結果依次放入一個新的迭代器中。示例代碼:```defdouble(x):returnx*2my_list=[1,2,3,4,5]result=map(double,my_list)#輸出結果是一個迭代器print(result)#輸出:<mapobjectat0x7fb27ecaeb50>#遍歷迭代器輸出處理過的結果forvalueinresult:print(value,end='')#輸出:246810```在上述示例代碼中,函數double被應用到my_list中的每個元素上,然后將處理結果放入一個新的迭代器result中。最后通過遍歷迭代器輸出處理過的結果。
requestmap和requesttype的區別
MyBatis中在查詢進行select映射的時候,返回類型可以用resultType,也可以用resultMap,resultType是直接表示返回類型的,而resultMap則是對外部ResultMap的引用,但是resultType跟resultMap不能同時存在。
在MyBatis進行查詢映射時,其實查詢出來的每一個屬性都是放在一個對應的Map里面的,其中鍵是屬性名,值則是其對應的值。
①當提供的返回類型屬性是resultType時,MyBatis會將Map里面的鍵值對取出賦給resultType所指定的對象對應的屬性。所以其實MyBatis的每一個查詢映射的返回類型都是ResultMap,只是當提供的返回類型屬性是resultType的時候,MyBatis對自動的給把對應的值賦給resultType所指定對象的屬性。
②當提供的返回類型是resultMap時,因為Map不能很好表示領域模型,就需要自己再進一步的把它轉化為對應的對象,這常常在復雜查詢中很有作用。
好了,關于resultmap和動態sql中的foreach的問題到這里結束啦,希望可以解決您的問題哈!
本文鏈接:http://xinin56.com/su/3277.html