最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis實(shí)現(xiàn)一對一關(guān)聯(lián)映射實(shí)例代碼

 更新時(shí)間:2017年11月30日 10:49:12   作者:炭燒小雞  
這篇文章主要給大家介紹了關(guān)于mybatis實(shí)現(xiàn)一對一關(guān)聯(lián)映射的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

在客觀世界中,對象很少是孤獨(dú)存在的,如班級與學(xué)生之間的關(guān)系,學(xué)生與課程之間的關(guān)系,它們的實(shí)例之間可以互相訪問,這就是關(guān)聯(lián)關(guān)系。MyBatis 的關(guān)聯(lián)映射可以大大簡化持久層數(shù)據(jù)的訪問,關(guān)聯(lián)關(guān)系的分類如下:

  • 一對一
  • 一對多
  • 多對多

我們首先繪制一個(gè)簡化的 E-R 圖來表示三種關(guān)聯(lián)關(guān)系。

上圖表示的三種關(guān)系:

  • 一對一:一個(gè)班主任只屬于一個(gè)班級,一個(gè)班級也只能有一個(gè)班主任
  • 一對多:一個(gè)班級有多個(gè)學(xué)生,一個(gè)學(xué)生只屬于一個(gè)班級
  • 多對多:一個(gè)學(xué)生可以選多門課,一門課可以有多個(gè)學(xué)生選

引言

而在實(shí)際項(xiàng)目開發(fā)中,經(jīng)常存在一對一的關(guān)系,如一個(gè)人對應(yīng)一張身份證信息,這就是一對一的關(guān)系。下面是一個(gè)簡單的

實(shí)例:

1、建表過程我就省略了,主要是一張Person表,一張IDCard表,其相關(guān)屬性見步驟2Pojo類屬性所示;

2、建立一個(gè)Person對象和一個(gè)IDCard對象:

mybatis/pri/xiaoyang/otot/pojo/IDCard.java

public class IDCard implements Serializable {
 private int id; // 主鍵
 private String cardCode; // 身份證編號
 private String carAddress; // 身份證地址
 //構(gòu)造函數(shù)及Getter/Setter/toString...
}

mybatis/pri/xiaoyang/otot/pojo/Person.java

public class Person implements Serializable {
 private int id; // 主鍵
 private String name; // 姓名
 private String sex; // 性別
 private IDCard iDCard; //身份證對象,人和身份證一對一關(guān)系
 //構(gòu)造函數(shù)及Getter/Setter/toString...
}

3、接下來是XML映射文件:

mybatis/pri/xiaoyang/otot/mapper/IDCardMapper.xml

<mapper namespace="pri.xiaoyang.otot.mapper.IDCardMapper">
  <!-- 根據(jù)主鍵查詢IDCard信息,封裝為IDCard對象并返回 -->
 <select id="selectIDCardById" pamaeterType="int" resultType="pri.xiaoyang.otot.pojo.IDCard">
  select * from idcard where id = #{id}
 </select>
</mapper>

mybatis/pri/xiaoyang/otot/mapper/PersonMapper.xml

<mapper namespace="pri.xiaoyang.otot.mapper.PersonMapper">
 <!-- 根據(jù)person主鍵查詢Person信息,封裝為Person對象并返回 -->
 <select id="selectPersonById" pamaeterType="int" resultMap="PersonMapper">
  select * from person where id = #{id}
 </select>
 
 <!-- 映射Person對象的resultMap -->
 <resultMap type="pri.xiaoyang.otot.pojo.Person" id="PersonMapper">
  <id property="id" column="id" />
  <result property="name" column="name" />
  <result property="sex" column="sex" />
  <!-- 一對一關(guān)聯(lián)映射:association -->
  <association property="iDCard" column="card_id" 
   select="pri.xiaoyang.otot.mapper.IDCardMapper.selectIDCardById"
   javaType="pri.xiaoyang.otot.pojo.IDCard"/>
 </resultMap >
</mapper>

注: 在PersonMapper.xml中定義了一個(gè)<select/>標(biāo)簽,該標(biāo)簽的sql語句是根據(jù)Person表的主鍵字段來查詢出唯一的Person信息,由于該P(yáng)erson表和IDCard表關(guān)聯(lián),因此返回一個(gè)resultMap值為personMap的映射對象。personMap使用了<association/>標(biāo)簽映射了一對一的關(guān)聯(lián)關(guān)系,其標(biāo)簽內(nèi)的屬性select表示會以column的屬性值"card_id"來作為參數(shù)執(zhí)行IDCardMapper中定義的selectIDCardById查詢對應(yīng)的IDCard數(shù)據(jù),查詢出的數(shù)據(jù)會被封裝到property屬性值的“card”對象中。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Java線程池7個(gè)參數(shù)的詳細(xì)含義

    Java線程池7個(gè)參數(shù)的詳細(xì)含義

    java多線程開發(fā)時(shí),常常用到線程池技術(shù),這篇文章是對創(chuàng)建java線程池時(shí)的七個(gè)參數(shù)的詳細(xì)解釋,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • VMware虛擬機(jī)下hadoop1.x的安裝方法

    VMware虛擬機(jī)下hadoop1.x的安裝方法

    這篇文章主要為大家詳細(xì)介紹了VMware虛擬機(jī)下hadoop1.x的安裝方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 使用新版Maven-mvnd快速構(gòu)建項(xiàng)目

    使用新版Maven-mvnd快速構(gòu)建項(xiàng)目

    本文主要介紹了使用新版Maven-mvnd來快速構(gòu)建項(xiàng)目,相比于Maven,mvnd可以顯著提高構(gòu)建速度,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Dubbo之SPI機(jī)制的實(shí)現(xiàn)原理和優(yōu)勢分析

    Dubbo之SPI機(jī)制的實(shí)現(xiàn)原理和優(yōu)勢分析

    這篇文章主要介紹了Dubbo之SPI機(jī)制的實(shí)現(xiàn)原理和優(yōu)勢,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • 如何將mybatis配置到springmvc中

    如何將mybatis配置到springmvc中

    為了更方便的連接數(shù)據(jù)庫,將mybatis配置到springMVC中。接下來通過本文給大家分享如何將mybatis配置到springmvc中,需要的朋友參考下吧
    2017-11-11
  • SpringBoot實(shí)現(xiàn)文件上傳下載實(shí)時(shí)進(jìn)度條功能(附源碼)

    SpringBoot實(shí)現(xiàn)文件上傳下載實(shí)時(shí)進(jìn)度條功能(附源碼)

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何實(shí)現(xiàn)文件上傳下載實(shí)時(shí)進(jìn)度條功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2022-10-10
  • 使用Maven創(chuàng)建和管理多模塊項(xiàng)目的詳細(xì)步驟

    使用Maven創(chuàng)建和管理多模塊項(xiàng)目的詳細(xì)步驟

    使用Maven進(jìn)行多模塊項(xiàng)目管理是一種常見的做法,它可以幫助你組織大型項(xiàng)目,使其結(jié)構(gòu)更加清晰,便于維護(hù)和構(gòu)建,以下是使用Maven創(chuàng)建和管理多模塊項(xiàng)目的詳細(xì)步驟,需要的朋友可以參考下
    2024-10-10
  • Spring-IOC容器中的常用注解與使用方法詳解

    Spring-IOC容器中的常用注解與使用方法詳解

    Spring是一個(gè)輕量級Java開發(fā)框架,最早有Rod Johnson創(chuàng)建,目的是為了解決企業(yè)級應(yīng)用開發(fā)的業(yè)務(wù)邏輯層和其他各層的耦合問題,這篇文章給大家詳細(xì)介紹Spring-IOC容器中的常用注解與使用方法,感興趣的朋友跟隨小編一起看看吧
    2021-04-04
  • springboot application無法使用$獲取pom變量的問題及解決

    springboot application無法使用$獲取pom變量的問題及解決

    這篇文章主要介紹了springboot application無法使用$獲取pom變量的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • springboot實(shí)現(xiàn)mock平臺的示例代碼

    springboot實(shí)現(xiàn)mock平臺的示例代碼

    本文主要介紹了springboot實(shí)現(xiàn)mock平臺的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評論

聂荣县| 旌德县| 荥经县| 锦屏县| 南京市| 始兴县| 大竹县| 嘉黎县| 延边| 修水县| 怀集县| 洪雅县| 连平县| 罗平县| 台北市| 锡林郭勒盟| 驻马店市| 霍邱县| 靖安县| 十堰市| 东乌珠穆沁旗| 景德镇市| 灌云县| 阳城县| 从江县| 六安市| 城市| 泾阳县| 称多县| 贡嘎县| 浦县| 金坛市| 安岳县| 阿巴嘎旗| 平安县| 新郑市| 容城县| 河南省| 车致| 齐齐哈尔市| 略阳县|