1. 程式人生 > >mybatis輸出對映(resultType 和 resultMap)

mybatis輸出對映(resultType 和 resultMap)

輸出對映

mybatis中的輸出對映有兩個:resultType 和 resultMap。依據不同情況,選擇不同的輸出對映。

resultType

使用resultType進行輸出對映,只有查詢出來的列名和pojo中的屬性名一致,該列才可以對映成功

如果查詢出來的列名和pojo中的屬性名全部不一致沒有建立pojo物件

只要查詢出來的列名和pojo中的屬性有一個一致,就會建立pojo物件

查詢出來的結果集只有一行且一列,可以使用簡單型別進行輸出對映。

輸出pojo物件和pojo列表:

不管是輸出的pojo單個物件還是一個列表(list中包括pojo),在mapper.xml中resultType指定的型別是一樣的

mapper.java指定的方法返回值型別不一樣

1、輸出單個pojo物件,方法返回值是單個物件型別

2、輸出pojo物件list,方法返回值是List<Pojo>

生成的動態代理物件中是根據mapper方法的返回值型別確定是呼叫selectOne(返回單個物件呼叫)還是selectList (返回集合物件呼叫 ).

resultMap

mybatis中使用resultMap完成高階輸出結果對映

resultMap使用方法:如果查詢出來的列名和pojo的屬性名不一致,通過定義一個resultMap對列名和pojo屬性名之間作一個對映關係。

1、定義resultMap

2、使用resultMap作為statement的輸出對映型別

將下邊的sql使用User完成對映

SELECT id id_, username username_  FROM USER WHERE id = #{value}

User類中屬性名和上邊查詢列名不一致。

  1. 定義reusltMap

使用resultMap作為statement的輸出對映型別

mapper.java

測試

小結

使用resultType進行輸出對映,只有查詢出來的列名和pojo中的屬性名一致,該列才可以對映成功。

如果查詢出來的列名和pojo的屬性名不一致,通過定義一個resultMap

對列名和pojo屬性名之間作一個對映關係。