天天看點

parameterType和parameterMap的不同

平常都是使用parameterType,今天寫代碼遇到parameterMap,突然,不知道怎麼用。

關于ResultMap和ResultType、ParameterMap和ParameterType,它們都是存在于mybatis的應用中。一般在編寫xml會用到。

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

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

ParameterMap(不推薦) & parameterType     

       ParameterMap和ResultMap類似,設定入參字段映射,很少使用(不建議使用)

       一般使用parameterType直接将查詢結果列值類型自動對應到java對象屬性類型上,不再配置映射關系一一對應。

這裡在提下#{}和${}的使用差別:

 例子如下:

Select ID,COMMAND from Message where COMMAND=#{command}

Select ID,COMMAND from Message where COMMAND=‘${command}’

前者解析為:

            Select ID,COMMAND from Message where COMMAND=?具有預編譯效果

後者解析為:

            Select ID,COMMAND from Message where COMMAND=段子   不具有預編譯效果

但是,例如當頁面向背景傳遞一個列名(屬性名)的時候,是不希望被預編譯出一個?的,此時要用到$格式;

如:加上 order by${param} ,此時param是一個列名。

繼續閱讀