1.輸入映射
通過(guò)parameterType指定輸入?yún)?shù)類(lèi)型,類(lèi)型可以是簡(jiǎn)單類(lèi)型、hashmap、pojo的包裝類(lèi)型。
1)傳遞pojo包裝對(duì)象
- 需求
完成用戶(hù)信息綜合查詢(xún),需要傳入查詢(xún)條件(可能包括用戶(hù)信息、其他信息) - 定義包裝類(lèi)型pojo
針對(duì)上邊需求,建議使用自定義的包裝類(lèi)型pojo。在包裝類(lèi)型的pojo中將復(fù)雜的查詢(xún)條件包裝進(jìn)去。

- mapper.xml
在UserMapper中定義用戶(hù)信息綜合查詢(xún)(查詢(xún)條件復(fù)雜,需要關(guān)聯(lián)查詢(xún))

- mapper.java


圖片.png
2)傳遞hashmap


2.輸出映射
1)resultType
使用resultType進(jìn)行輸出映射,只有查詢(xún)出來(lái)的列名和pojo中的屬性名一致,該列才可以映射成功。
如果查詢(xún)出來(lái)的列明和pojo中的屬性名全部不一致,沒(méi)有創(chuàng)建pojo對(duì)象。
只要查詢(xún)出來(lái)的列名和pojo中的屬性有一個(gè)一致,就會(huì)創(chuàng)建pojo對(duì)象。



- 不管是輸出的pojo是單個(gè)對(duì)象還是一個(gè)列表(list中包括pojo),在mapper.xml中resultType指定的類(lèi)型都一樣,只是mapper.java中返回值類(lèi)型方法不一樣List。
生成的動(dòng)態(tài)代理對(duì)象中是根據(jù)mapper方法返回值類(lèi)型確定調(diào)用selectOne還是selectList。
2)resultMap
mybatis中使用resultMap完成高級(jí)輸出結(jié)果映射。
- 如果查詢(xún)出來(lái)的列名和pojo的屬性名不一致,通過(guò)定義一個(gè)resultMap對(duì)列名和pojo屬性名之間作一個(gè)映射關(guān)系。
- 定義resultMap

定義resultMap
- 使用resultMap作為statement的輸出映射類(lèi)型

- mapper.java

mapper.java
-
test
test.png
