亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MyBatis中的表關(guān)聯(lián)查詢實(shí)現(xiàn)示例

 更新時(shí)間:2021年01月18日 09:30:24   作者:Pumpkin  
這篇文章主要介紹了MyBatis中的表關(guān)聯(lián)查詢實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Mybatis中的一對(duì)多對(duì)象關(guān)聯(lián)查詢查詢

模擬情景,商品與商品詳情:一件商品可以對(duì)應(yīng)多個(gè)商品詳情信息,即從商品➡商品詳情方向看,屬于一對(duì)多。 在一對(duì)多關(guān)系中,需要在屬于一的一方的實(shí)體類中添加多的一方的集合,一般為L(zhǎng)ist<>類型

 //(省去了get和set的方法)
 public class Goods {
  private Integer goodsId ;
  private String title ;
  private String subTitle ;
  private Float originalCost ;
  private Float currentPrice ;
  private Float discount ;
  private Integer isFreeDelivery ;
  private Integer categoryId ;
  //在一對(duì)多關(guān)系中,在一方添加多的一方的集合
  private List<GoodsDetail> goodsDetailLists ; 
}

在"一方"實(shí)體類對(duì)應(yīng)的xml 文件中,添加配置信息

<!--  OneToMany對(duì)象關(guān)聯(lián)查詢
    resultMap可用于說明一對(duì)多或者多對(duì)一的映射邏輯
    id 是resultMap屬性引用的標(biāo)志
    type 指向One的實(shí)體(Goods)
-->
  <resultMap id="rmGoods1" type="com.imooc.mybatis.entity.Goods">
<!--    映射goods對(duì)象的主鍵到goods_id字段-->
    <id column="goods_id" property="goodsId"></id>
<!--
    collection的含義是,在
    sql語(yǔ)句得到結(jié)果后,對(duì)所有Goods對(duì)象遍歷得到goods_id字段值,
    并代入到goodsDetail命名空間的selectByGoodsId的sql中執(zhí)行查詢
    將得到的“商品詳情”集合賦值給goodsDetailsList對(duì)象
-->
    <collection property="goodsDetailLists" select="goodsDetail.selectByGoodsId"
          column="goods_id"></collection>
  </resultMap>
  <select id="selectOneToMany" resultMap="rmGoods1">
    select * from t_goods limit 0 , 1
  </select>

在“多方”對(duì)應(yīng)的xml文件中添加

<mapper namespace="goodsDetail">
  <select id="selectByGoodsId" parameterType="Integer"
      resultType="com.imooc.mybatis.entity.GoodsDetail">
    select * from t_goods_detail where goods_id = #{value}
  </select>
</mapper>

至此,關(guān)于商品到商品詳情的一對(duì)多查詢配置就完成了。

測(cè)試

 //OneToMany
  @Test
  public void selectOneToMany(){
    SqlSession sqlSession = null ;
    try{
      sqlSession = MybatisUtils.openSession() ;
      List<Goods> list = sqlSession.selectList("goods.selectOneToMany");
      for (Goods g : list){
      //輸出商品和該商品的詳情信息數(shù)量
        System.out.println(g.getTitle() + ":" + g.getGoodsDetailLists().size());
      }
    }catch (Exception e){
      e.printStackTrace();
    }finally {
      MybatisUtils.closeSession(sqlSession);
    }
  }

Mybatis多對(duì)一對(duì)象關(guān)聯(lián)查詢

在上訴情景中,商品詳情➡商品即為多對(duì)一的關(guān)系
在多對(duì)一關(guān)系中,需要在多的一方的實(shí)體類中添加一的一方的實(shí)體對(duì)象

public class GoodsDetail {
  private Integer gdId ;
  private Integer goodsId ;
  private String gdPicUrl ;
  private Integer gdOrder ;
  //多對(duì)一:在多的一方添加一的一方的實(shí)體
  private Goods goods ;
}

在多的一方xml文件中添加

<!--  多對(duì)一關(guān)系-->
  <resultMap id="rmGoodsDetail" type="com.imooc.mybatis.entity.GoodsDetail">
    <id column="gd_id" property="gdId"></id>
    <result column="goods_id" property="goodsId"></result>
    <!-- goods.selectById 為goods.xml根據(jù)主鍵id查找goods信息。-->
    <association property="goods" select="goods.selectById" column="goods_id"></association>
  </resultMap>
  <select id="selectManyToOne" resultMap="rmGoodsDetail">
    select * from t_goods_detail limit 0 , 1
  </select>

測(cè)試

/**
   * 多對(duì)一對(duì)象關(guān)聯(lián)映射
   * */
  @Test
  public void selectManyToOne(){
    SqlSession sqlSession = null ;
    try{
      sqlSession = MybatisUtils.openSession() ;
      List<GoodsDetail> list = sqlSession.selectList("goodsDetail.selectManyToOne");
      for (GoodsDetail gd : list){
        System.out.println(gd.getGdPicUrl() + ":" + gd.getGoods().getTitle());
      }
    }catch (Exception e){
      e.printStackTrace();
    }finally {
      MybatisUtils.closeSession(sqlSession);
    }
  }

到此這篇關(guān)于MyBatis中的表關(guān)聯(lián)查詢實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)MyBatis 表關(guān)聯(lián)查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Java編寫一個(gè)屬于自己的日歷

    利用Java編寫一個(gè)屬于自己的日歷

    這篇文章主要為大家介紹了如何利用Java編寫一個(gè)屬于自己的日歷,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起嘗試一下
    2022-05-05
  • 最流行的java后臺(tái)框架spring quartz定時(shí)任務(wù)

    最流行的java后臺(tái)框架spring quartz定時(shí)任務(wù)

    近日項(xiàng)目開發(fā)中需要執(zhí)行一些定時(shí)任務(wù),比如需要在每天凌晨時(shí)候,分析一次前一天的日志信息,借此機(jī)會(huì)整理了一下定時(shí)任務(wù)的幾種實(shí)現(xiàn)方式,由于項(xiàng)目采用spring框架,所以我都將結(jié)合spring框架來介紹
    2015-12-12
  • MyBatis中map的應(yīng)用與模糊查詢實(shí)現(xiàn)代碼

    MyBatis中map的應(yīng)用與模糊查詢實(shí)現(xiàn)代碼

    這篇文章主要介紹了MyBatis中map的應(yīng)用與模糊查詢實(shí)現(xiàn)代碼,文中通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • Java使用Deque實(shí)現(xiàn)堆棧的方法

    Java使用Deque實(shí)現(xiàn)堆棧的方法

    這篇文章主要介紹了Java使用Deque實(shí)現(xiàn)堆棧的方法,實(shí)例分析了java簡(jiǎn)單實(shí)現(xiàn)堆棧的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Windows系統(tǒng)下Java連接SQL Server的方法簡(jiǎn)介

    Windows系統(tǒng)下Java連接SQL Server的方法簡(jiǎn)介

    這篇文章主要介紹了Windows系統(tǒng)下Java連接SQL Server的方法,分別是JDBC和JTDS的相關(guān)使用,需要的朋友可以參考下
    2015-09-09
  • Spring的異常處理@ExceptionHandler注解解析

    Spring的異常處理@ExceptionHandler注解解析

    這篇文章主要介紹了Spring的異常處理@ExceptionHandler注解解析,當(dāng)一個(gè)Controller中有方法加了@ExceptionHandler之后,這個(gè)Controller其他方法中沒有捕獲的異常就會(huì)以參數(shù)的形式傳入加了@ExceptionHandler注解的那個(gè)方法中,需要的朋友可以參考下
    2023-12-12
  • Java虛擬機(jī)執(zhí)行引擎知識(shí)總結(jié)

    Java虛擬機(jī)執(zhí)行引擎知識(shí)總結(jié)

    這篇文章主要介紹了有關(guān)Java虛擬機(jī)執(zhí)行引擎的知識(shí),文中實(shí)例簡(jiǎn)單易懂,方便大家更好的學(xué)習(xí),有興趣的朋友可以了解下
    2020-06-06
  • Java中集合List、Set和Map的入門詳細(xì)介紹

    Java中集合List、Set和Map的入門詳細(xì)介紹

    Java集合主要分為三種類型:Set(集)、List(列表)和Map(映射),下面這篇文章主要給大家介紹了關(guān)于Java中集合List、Set和Map的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • 普通對(duì)象使用spring容器中的對(duì)象的實(shí)現(xiàn)方法

    普通對(duì)象使用spring容器中的對(duì)象的實(shí)現(xiàn)方法

    這篇文章主要介紹了普通對(duì)象使用spring容器中的對(duì)象的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Java object類及正則表達(dá)式原理解析

    Java object類及正則表達(dá)式原理解析

    這篇文章主要介紹了Java object類及正則表達(dá)式原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論