5.Mybatis的輸出映射(就是對查詢的結果集的映射)


視頻地址: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.當沒有屬性匹配到該對象的時候,就是映射沒有成功,那么該對象不創建

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM