視頻地址:http://edu.51cto.com/sd/be679
Mybatis的輸出映射,也就是對查詢結果集的一個映射,主要有兩種:
1.resultType(不需要配置,可以直接用)
一般是實體類
基本類型也可以
2.resultMap(需要配置resultMap與之對應)
1.resultType返回結果是實體類,這種寫法比較簡單,直接貼代碼,有幾個要明白的地方就是:
查詢出來的列名和我們的實體類的屬性名必須一致,如果不一致,映射不成功。
有一個或者一個以上一致:不一致的顯示為null
全部不一致:該對象不被創建
<select id="findAll" resultType="com.etc.entity.Student"> select * from t_student </select>
2.resultType返回的是基本類型,寫法比較簡單但是有一個要求: (resultType="java.lang.Integer")
就是要求你查詢出來的結果必須只有一行且一列
3.返回的是resultMap,這種比較麻煩一點,需要配置一個resultMap與之對應(目前這里講的是單表的,關聯表的后面會說),做法主要有三步
1.寫好sql
select sid sid_,name name_,sex sex_,hobbies hobbies_ from t_student
看看這個sql的查詢結果
2.配置一個resultMap
<resultMap type="student" id="studentResultMap"> <!-- id:查詢結果的唯一標識 不是id結果的映射 column:查詢出來的列名 property:type指定的實體類的屬性名 --> <id column="sid_" property="sid"/> <result column="name_" property="name"/> <result column="sex_" property="sex"/> <result column="hobbies_" property="hobbies"/> </resultMap>
3.resultMap返回的結果是你配置的resultMap的Id
resultMap總結:
1. column:查詢出來的是列名 ,不是數據庫的字段名(只是在開發中程序猿通常會把屬性名和字段名寫成一樣)
2.就是映射時有一個或者多個屬性對應上的時候:沒對應的屬性值顯示為null,有對應到的就顯示值
3.當沒有屬性匹配到該對象的時候,就是映射沒有成功,那么該對象不創建