天天看點

【Mybatis架構】輸出映射-resultType與resultMap

輸出映射

接下來說說有關mapper.xml配置檔案中查詢标簽中關于傳回值類型resulttype與resultmap的一些内容

1.resulttype

使用resulttype進行輸出映射,隻有查詢出來的列名和pojo中的屬性名一緻,該列才可以映射成功。

如果查詢出來的列名和pojo中的屬性名全部不一緻,沒有建立pojo對象。

隻要查詢出來的列名和pojo中的屬性有一個一緻,就會建立pojo對象。

1.1輸出簡單類型

1.1.1需求

使用者資訊的綜合查詢清單總數,通過查詢總數和上邊使用者綜合查詢清單才可以實作分頁。

1.1.2mapper.xml

1.1.3mapper.java

1.1.4測試代碼

測試結果:

總數為:2

輸出日志:

1.1.5小結

查詢出來的結果集隻有一行且一列,可以使用簡單類型進行輸出映射。(輸出簡單類型的要求)

1.2輸出pojo對象和pojo清單

不管是輸出的pojo單個對象還是一個清單(list中包括pojo),在mapper.xml中resulttype指定的類型是一樣的。

在mapper.java指定的方法傳回值類型不一樣:

(1)輸出單個pojo對象,方法傳回值是單個對象類型

(2)輸出pojo對象list,方法傳回值是list<pojo>

生成的動态代理對象中是根據mapper方法的傳回值類型确定是調用selectone(傳回單個對象調用)還是selectlist (傳回集合對象調用 ).

(3)輸出hashmap

輸出pojo對象可以改用hashmap輸出類型,将輸出的字段名稱作為map的key,value為字段值。如果是集合,那就是list裡面套了hashmap。

2.resultmap

mybatis中使用resultmap完成進階輸出結果映射。

2.1resultmap使用方法

如果查詢出來的列名和pojo的屬性名不一緻,通過定義一個resultmap對列名和pojo屬性名之間作一個映射關系。

下面來進行實驗,實驗需求

2.2将下邊的sql使用user完成映射

select id id_,username username_ from user where id=#{value}

user類中屬性名和上邊查詢列名不一緻。

resultmap使用方法:(一下屬性均定義在mapper.xml映射檔案中)

(1)定義resultmap

(2)使用resultmap作為statement的輸出映射類型

(3)mapper接口類中添加相應方法

測試:

張三

小結

轉載請注明出處:http://blog.csdn.net/acmman/article/details/46509375