resultMap與resultType、parameterMap與 parameterType的區別


(一) mybatis中select元素有兩個屬性resultType和resultMap,他們有什么區別呢?                                                  

  1- resultType:當使用resultType做SQL語句返回結果類型處理時,對於SQL語句查詢出的字段在相應的pojo中必須有和它相同的字段對應,而resultType中的內容就是pojo在本項目中的位置

  2- resultMap:當使用resultMap做SQL語句返回結果類型處理時,通常需要在mapper.xml中定義resultMap進行pojo和相應表字段的對應。還可以表示對象間一對一、一對多、多對多、多對一等關系。

 


 

(二) 關於ResultMap和ResultType、ParameterMap和ParameterType,它們都是存在於mybatis的應用中。當我們在編寫mapper.xml的時候,經常可以看到這幾個參數,接下來就來分析一下它們之間的區別了。

    1- 首先看看ResultMap和ResultType,它們都是用來表示查詢結果集與java對象之間的一種關系,將查詢結果集,按照某種關系映射到java對象。

    2- ResultMap:將查詢結果集中的列一一映射到java對象的各個屬性上去,此處的這個映射關系,是根據用戶在“resultMap”的子標簽中的配置來決定的,靈活多變,常用於多表查詢以及查詢時使用別名的情況。

  ResultMap標簽及其子標簽部分屬性:

    id:指定查詢結果集中的唯一標識,即主鍵,可配置多個;
    column:查詢結果集中的列名;
    property:需要映射到java對象中的屬性名。
         ResultType:將查詢結果集中的各個列,一一映射到java對象中與列名一致的屬性中。換句話說,此處查詢結果集到java對象的映射關系是固定的,只有列名和屬性名相同,該列才能映射成功。

   3- 了解完ResultMap和ResultType,接下來學習ParameterMap和ParameterType就簡單多了。

        ParameterMap其實和ResultMap類似,映射關系靈活多變,但ParameterMap並不被各個開發者推薦。相對的,ParameterType則是比較常用,該項與ResultType類似。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM