中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mybatis中resultMap的Colum和property怎么用

發布時間:2022-01-10 14:15:51 來源:億速云 閱讀:199 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Mybatis中resultMap的Colum和property怎么用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Mybatis中resultMap的Colum和property怎么用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

    resultMap的Colum和property屬性

    1: resultMap標簽

    當我們的數據庫字段與實體類的屬性不一致時,就需要使用該標簽進行一一映射。

    2:使用情況

    2.1 簡單查詢
     <resultMap id="這個resultMap的id" type="對應實體類的全限定類名">
             <id column="id" property="id"></id>
            <result column="username" property="name"></result>
            <result column="author" property="author"></result>
            <result column="number" property="number"></result>
           .............
           colum對應數據庫的字段,property對應實體類的屬性
        </resultMap>

    他表示對數據按照什么樣的規則進行一一映射,如:

      <!-- 根據編號查找書籍-->
        <select id="SelectbooksByNumber" parameterType="String"  resultMap="名字">
            select * from book where number=#{number};
        </select>

    上面的查找結果按照你給的resultMap的對應規則進行映射。

    2.2 一對一

    需要注意的是你sql語句查出來的列名稱是別名,那你就要填別名,就不是你數據庫的列名稱了。

    返回結果:User
    User中含有Role屬性集合 一對多的關系
    JavaType是用來指定pojo中屬性的類型

    2.3 一對多

    同樣和一對一 一樣需要注意列名稱。

    返回結果:User
    User中含有Role屬性集合 一對多的關系
    JavaType是用來指定pojo中屬性的類型,
    ofType指定的是 映射到list集合屬性中pojo的類型
    其中Role屬性集合為List

    pojo

    public class User implements Serializable {
        private Integer id;
        private String username;
        private String password;
        private String salt;
        private Integer status; // 用戶狀態 0: 正常   1:禁用   2:鎖定
    
        //角色集合
        private List<Role> roles;

    role表

    Mybatis中resultMap的Colum和property怎么用

    user表

    Mybatis中resultMap的Colum和property怎么用

    user與role的映射表

    Mybatis中resultMap的Colum和property怎么用

    resultMap對column和property的理解

    首先,先看看這張圖,看能不能一下看明白:

    Mybatis中resultMap的Colum和property怎么用

    select元素有很多屬性(這里說用的比較多的)

    • id:命名空間唯一標識,可以被用來引用這條語句

    • parameterType:將會傳入這條語句的參數類的完全限定名或者別名

    • resultType:從這條語句要返回的期望類型的類的完全限定名或別名(這里注意下集合類型,應該是集合可以包含的類型,不能是集合本身),重要:使用resultType或resultMap,但不能同時使用。

    • resultMap:命名引用外部的resultMap,其名稱要和外部的resultMap元素的ID名稱一致,用于映射其結果到實體類指定對象中。

    什么時候我們知道使用resultMap,什么時候又使用resultType呢?

    ①當去select一張表時,可以使用resultType,這些情況下,MyBatis會在幕后自動創建一個ReusltMap,基于屬性名來映射到JavaBean屬性上

    ②所以在使用resultMap時,就必須要寫上resultMap相對應的xml

    ③為了方便我們開發出錯,在沒有特別要求的情況下,column名可以完全和property名稱一致,否則當我們沒有對應上的時候,數據庫匹配不到,會將某某參數值變為大寫,導致我們本來獲取小寫的參數名,結果沒有獲取到,后臺報錯,得不償失啊!

    最后說下

    sql中比如,有 andm.id = #{id ,jdbcType=VARCHAR } 要標明jdbcType為什么呢?

    解釋:

    如果你映射了一個javabean,MyBatis通常可以斷定類型(項目里好多都要寫,我也不知道為啥),然而,如果你映射到的是比如:HashMap,那么應該明確指定的jdbcType來保證所需的行為

    讀到這里,這篇“Mybatis中resultMap的Colum和property怎么用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    竹山县| 铜山县| 荥阳市| 耿马| 上高县| 电白县| 简阳市| 柳林县| 龙海市| 武义县| 调兵山市| 伊通| 泰安市| 平山县| 崇左市| 金溪县| 宝坻区| 津市市| 西和县| 休宁县| 犍为县| 天祝| 五寨县| 类乌齐县| 航空| 包头市| 塔河县| 嘉祥县| 宜昌市| 安溪县| 漠河县| 凉城县| 阳高县| 北京市| 贡嘎县| 贵阳市| 邵阳市| 义乌市| 镇宁| 上林县| 陇西县|