1.輸入映射
通過parameterType指定輸入?yún)?shù)類型麦牺,類型可以是簡單類型寒亥、hashmap洒忧、pojo的包裝類型运授。
1)傳遞pojo包裝對象
- 需求
完成用戶信息綜合查詢烤惊,需要傳入查詢條件(可能包括用戶信息、其他信息) - 定義包裝類型pojo
針對上邊需求徒坡,建議使用自定義的包裝類型pojo撕氧。在包裝類型的pojo中將復(fù)雜的查詢條件包裝進(jìn)去。
- mapper.xml
在UserMapper中定義用戶信息綜合查詢(查詢條件復(fù)雜喇完,需要關(guān)聯(lián)查詢)
- mapper.java
圖片.png
2)傳遞hashmap
2.輸出映射
1)resultType
使用resultType進(jìn)行輸出映射伦泥,只有查詢出來的列名和pojo中的屬性名一致剥啤,該列才可以映射成功。
如果查詢出來的列明和pojo中的屬性名全部不一致不脯,沒有創(chuàng)建pojo對象府怯。
只要查詢出來的列名和pojo中的屬性有一個(gè)一致,就會(huì)創(chuàng)建pojo對象防楷。
- 不管是輸出的pojo是單個(gè)對象還是一個(gè)列表(list中包括pojo)牺丙,在mapper.xml中resultType指定的類型都一樣,只是mapper.java中返回值類型方法不一樣List复局。
生成的動(dòng)態(tài)代理對象中是根據(jù)mapper方法返回值類型確定調(diào)用selectOne還是selectList冲簿。
2)resultMap
mybatis中使用resultMap完成高級(jí)輸出結(jié)果映射。
- 如果查詢出來的列名和pojo的屬性名不一致亿昏,通過定義一個(gè)resultMap對列名和pojo屬性名之間作一個(gè)映射關(guān)系峦剔。
- 定義resultMap
定義resultMap
- 使用resultMap作為statement的輸出映射類型
- mapper.java
mapper.java
-
test
test.png