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

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

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

前言

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

  • 一對(duì)一
  • 一對(duì)多
  • 多對(duì)多

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

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

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

引言

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

實(shí)例:

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

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

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

public class IDCard implements Serializable {
 private int id; // 主鍵
 private String cardCode; // 身份證編號(hào)
 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; //身份證對(duì)象,人和身份證一對(duì)一關(guān)系
 //構(gòu)造函數(shù)及Getter/Setter/toString...
}

3、接下來(lái)是XML映射文件:

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

<mapper namespace="pri.xiaoyang.otot.mapper.IDCardMapper">
  <!-- 根據(jù)主鍵查詢IDCard信息,封裝為IDCard對(duì)象并返回 -->
 <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對(duì)象并返回 -->
 <select id="selectPersonById" pamaeterType="int" resultMap="PersonMapper">
  select * from person where id = #{id}
 </select>
 
 <!-- 映射Person對(duì)象的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" />
  <!-- 一對(duì)一關(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語(yǔ)句是根據(jù)Person表的主鍵字段來(lái)查詢出唯一的Person信息,由于該P(yáng)erson表和IDCard表關(guān)聯(lián),因此返回一個(gè)resultMap值為personMap的映射對(duì)象。personMap使用了<association/>標(biāo)簽映射了一對(duì)一的關(guān)聯(lián)關(guān)系,其標(biāo)簽內(nèi)的屬性select表示會(huì)以column的屬性值"card_id"來(lái)作為參數(shù)執(zhí)行IDCardMapper中定義的selectIDCardById查詢對(duì)應(yīng)的IDCard數(shù)據(jù),查詢出的數(shù)據(jù)會(huì)被封裝到property屬性值的“card”對(duì)象中。

總結(jié)

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

相關(guān)文章

  • Java串口通信入門

    Java串口通信入門

    串口通信是一種用于在計(jì)算機(jī)和外部設(shè)備之間進(jìn)行數(shù)據(jù)交換的通信方式,本文主要介紹了Java串口通信入門,并提供一個(gè)簡(jiǎn)單的示例來(lái)演示如何在Java中進(jìn)行串口通信,感興趣的可以了解一下
    2023-11-11
  • Spring Boot啟動(dòng)banner定制的步驟詳解

    Spring Boot啟動(dòng)banner定制的步驟詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot啟動(dòng)banner定制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Java自定義線程池的實(shí)現(xiàn)示例

    Java自定義線程池的實(shí)現(xiàn)示例

    本文主要介紹了Java自定義線程池的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java中斷一個(gè)線程操作示例

    Java中斷一個(gè)線程操作示例

    這篇文章主要介紹了Java中斷一個(gè)線程操作,結(jié)合實(shí)例形式分析了java中斷線程相關(guān)的interrupt()、isInterrupted()及interrupted()函數(shù)使用技巧,需要的朋友可以參考下
    2019-10-10
  • Java輸入三個(gè)整數(shù)并把他們由小到大輸出(x,y,z)

    Java輸入三個(gè)整數(shù)并把他們由小到大輸出(x,y,z)

    這篇文章主要介紹了輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出,需要的朋友可以參考下
    2017-02-02
  • springmvc九大組件之HandlerAdapter詳解

    springmvc九大組件之HandlerAdapter詳解

    這篇文章主要介紹了springmvc九大組件之HandlerAdapter詳解,RequestMappingHandlerAdapter支持的handler的類型是HandlerMethod,而HandlerMethod是通過(guò)解析@RequestMapping注解獲得的,需要的朋友可以參考下
    2023-11-11
  • MybatisPlus自帶的queryWrapper實(shí)現(xiàn)時(shí)間倒序方式

    MybatisPlus自帶的queryWrapper實(shí)現(xiàn)時(shí)間倒序方式

    這篇文章主要介紹了MybatisPlus自帶的queryWrapper實(shí)現(xiàn)時(shí)間倒序方式,具有很好的參考價(jià)值,希望對(duì)的有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring中的@Value和@PropertySource注解詳解

    Spring中的@Value和@PropertySource注解詳解

    這篇文章主要介紹了Spring中的@Value和@PropertySource注解詳解,@PropertySource:讀取外部配置文件中的key-value保存到運(yùn)行的環(huán)境變量中,本文提供了部分實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2023-11-11
  • Mybatis聯(lián)合查詢的實(shí)現(xiàn)方法

    Mybatis聯(lián)合查詢的實(shí)現(xiàn)方法

    本文主要介紹了 Mybatis聯(lián)合查詢的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 詳解spring security安全防護(hù)

    詳解spring security安全防護(hù)

    這篇文章主要介紹了詳解spring security安全防護(hù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07

最新評(píng)論