欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis中resultMap的Colum和property屬性詳解

 更新時(shí)間:2022年01月10日 11:23:06   作者:愛吃小牛奶  
這篇文章主要介紹了Mybatis中resultMap的Colum和property屬性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

resultMap的Colum和property屬性

1: resultMap標(biāo)簽

當(dāng)我們的數(shù)據(jù)庫(kù)字段與實(shí)體類的屬性不一致時(shí),就需要使用該標(biāo)簽進(jìn)行一一映射。

2:使用情況

2.1 簡(jiǎn)單查詢

 <resultMap id="這個(gè)resultMap的id" type="對(duì)應(yīng)實(shí)體類的全限定類名">
         <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對(duì)應(yīng)數(shù)據(jù)庫(kù)的字段,property對(duì)應(yīng)實(shí)體類的屬性
    </resultMap>

他表示對(duì)數(shù)據(jù)按照什么樣的規(guī)則進(jìn)行一一映射,如:

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

上面的查找結(jié)果按照你給的resultMap的對(duì)應(yīng)規(guī)則進(jìn)行映射。

2.2 一對(duì)一

需要注意的是你sql語(yǔ)句查出來(lái)的列名稱是別名,那你就要填別名,就不是你數(shù)據(jù)庫(kù)的列名稱了。

返回結(jié)果:User
User中含有Role屬性集合 一對(duì)多的關(guān)系
JavaType是用來(lái)指定pojo中屬性的類型

2.3 一對(duì)多

同樣和一對(duì)一 一樣需要注意列名稱。

返回結(jié)果:User
User中含有Role屬性集合 一對(duì)多的關(guān)系
JavaType是用來(lái)指定pojo中屬性的類型,
ofType指定的是 映射到list集合屬性中pojo的類型
其中Role屬性集合為L(zhǎng)ist

pojo

public class User implements Serializable {
    private Integer id;
    private String username;
    private String password;
    private String salt;
    private Integer status; // 用戶狀態(tài) 0: 正常   1:禁用   2:鎖定

    //角色集合
    private List<Role> roles;

role表

在這里插入圖片描述

user表

在這里插入圖片描述

user與role的映射表

在這里插入圖片描述

resultMap對(duì)column和property的理解

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

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

  • id:命名空間唯一標(biāo)識(shí),可以被用來(lái)引用這條語(yǔ)句
  • parameterType:將會(huì)傳入這條語(yǔ)句的參數(shù)類的完全限定名或者別名
  • resultType:從這條語(yǔ)句要返回的期望類型的類的完全限定名或別名(這里注意下集合類型,應(yīng)該是集合可以包含的類型,不能是集合本身),重要:使用resultType或resultMap,但不能同時(shí)使用。
  • resultMap:命名引用外部的resultMap,其名稱要和外部的resultMap元素的ID名稱一致,用于映射其結(jié)果到實(shí)體類指定對(duì)象中。

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

①當(dāng)去select一張表時(shí),可以使用resultType,這些情況下,MyBatis會(huì)在幕后自動(dòng)創(chuàng)建一個(gè)ReusltMap,基于屬性名來(lái)映射到JavaBean屬性上

②所以在使用resultMap時(shí),就必須要寫上resultMap相對(duì)應(yīng)的xml

③為了方便我們開發(fā)出錯(cuò),在沒有特別要求的情況下,column名可以完全和property名稱一致,否則當(dāng)我們沒有對(duì)應(yīng)上的時(shí)候,數(shù)據(jù)庫(kù)匹配不到,會(huì)將某某參數(shù)值變?yōu)榇髮?,?dǎo)致我們本來(lái)獲取小寫的參數(shù)名,結(jié)果沒有獲取到,后臺(tái)報(bào)錯(cuò),得不償失啊!

最后說(shuō)下

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

解釋:

如果你映射了一個(gè)javabean,MyBatis通??梢詳喽愋停?xiàng)目里好多都要寫,我也不知道為啥),然而,如果你映射到的是比如:HashMap,那么應(yīng)該明確指定的jdbcType來(lái)保證所需的行為

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Maven項(xiàng)目Dependencies常見報(bào)錯(cuò)及解決方案

    詳解Maven項(xiàng)目Dependencies常見報(bào)錯(cuò)及解決方案

    這篇文章主要介紹了詳解Maven項(xiàng)目Dependencies常見報(bào)錯(cuò)及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • SpringBoot @FixMethodOrder 如何調(diào)整單元測(cè)試順序

    SpringBoot @FixMethodOrder 如何調(diào)整單元測(cè)試順序

    這篇文章主要介紹了SpringBoot @FixMethodOrder 調(diào)整單元測(cè)試順序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 分享幾個(gè)提高Java性能的高效用法

    分享幾個(gè)提高Java性能的高效用法

    這篇文章主要介紹了分享幾個(gè)提高Java性能的高效用法 ,需要的朋友可以參考下
    2014-10-10
  • java數(shù)據(jù)庫(kù)連接池的特點(diǎn)及步驟

    java數(shù)據(jù)庫(kù)連接池的特點(diǎn)及步驟

    大家好,本篇文章主要講的是數(shù)據(jù)庫(kù)連接池的特點(diǎn)及步驟,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Java的Hibernate框架中的基本映射用法講解

    Java的Hibernate框架中的基本映射用法講解

    映射是Hibernate框架操作數(shù)據(jù)庫(kù)數(shù)據(jù)的重要特性之一,這里我們來(lái)看一下Java的Hibernate框架中的基本映射用法講解,包括最基本的單向一對(duì)一與多對(duì)一映射關(guān)系等:
    2016-07-07
  • Java實(shí)現(xiàn)簡(jiǎn)易學(xué)籍管理系統(tǒng)

    Java實(shí)現(xiàn)簡(jiǎn)易學(xué)籍管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)易學(xué)籍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 解決MyEclipse中Maven設(shè)置jdk版本jdk1.8報(bào)錯(cuò)問(wèn)題

    解決MyEclipse中Maven設(shè)置jdk版本jdk1.8報(bào)錯(cuò)問(wèn)題

    今天安裝了jdk1.8、tomcat8、和maven3.5.2,弄好后在myeclipse新建了一個(gè)maven項(xiàng)目,項(xiàng)目默認(rèn)是jdk1.5,改成jdk1.8后項(xiàng)目報(bào)錯(cuò)
    2018-10-10
  • JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)原理解析

    JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)原理解析

    這篇文章主要介紹了JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Spring Boot整合web層實(shí)現(xiàn)過(guò)程詳解

    Spring Boot整合web層實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要介紹了Spring Boot整合web層實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java實(shí)現(xiàn)打字游戲

    Java實(shí)現(xiàn)打字游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)打字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評(píng)論