mybatis實現一對一,一對多,多對多的簡單案例

2021-01-15 青春歲月共勉

前言:

mybatis作為一個持久層框架,是一個致力於面向程式設計師,需要程式設計師自行編寫相關的sql語句的orm框架,而開發中涉及到的sql,一較多的基本是查詢的sql,由於表與表之間的關係,我們經常需要處理一對一,一對多,和多對多關係的查詢語句,而針對這些關聯關係,經常用到的是association標籤和collection標籤。

1)一對一查詢:

案例:假設一個用戶可以創建多個訂單,而一個訂單只能由一個用戶創建,因此,用戶與訂單屬於一對多關係,而訂單與用戶屬於一對一關係。

user類:

orders類:

sql語句,根據orders表中的user_id外鍵與user表中的id關聯

mapper接口:

測試:

先加載全局xml文件,最終得到sqlsessionfactory工廠對象

結果:

上邊resultMap裡邊的相關標籤和屬性:

id標籤:property編寫實體類對應的主鍵id,column編寫映射的結果集的id欄位;

result標籤:其他非主鍵使用result標籤;

property:實體類中相應的屬性;

column:查詢映射結果集對應的列的欄位;

association標籤(一對一關聯關係使用):該標籤中的property="user",指將關聯查詢帶的用戶信息映射到user屬性,也就是上邊orders中的user屬性;

javaType:user屬性所屬的pojo類;

2)一對多查詢:

案例:

查詢訂單並關聯查詢訂單詳情,要求映射的結果集,有用戶信息,訂單信息,和訂單詳情信息。

分析:一份訂單裡邊可以有多個商品,訂單詳情指針對每種商品的相關信息的描述,以及訂單的創建時間,編號等。所以訂單與詳情屬於一對多關係。

orderdetail類:

orders類:

sql語句:

關於collection標籤中的相關屬性和上邊的association標籤類似,區別之一只是一個使用的是javaType一個使用的是ofType

接口定義和上邊差不多,這裡就不寫了,只需要知道使用mybatis實現mapper代理時,要滿足:

mapper接口名和mapper.xml中的select標籤的id值保持一致;

返回值和resultType或resultMap的type保持一致;

有參數時,只需要保證參數和parmentType指定的類型一致;

測試:

結果:

3)多對多查詢:

案例:一份訂單裡邊可以有多個商品,同種商品可以在多份訂單中,因此,訂單與商品的關係屬於多對多關係;一條訂單詳情,描述一種商品,訂單詳情與商品又屬於一對一關係。

在本次demo中,訂單與商品關聯是通過訂單詳情表關聯起來的,即訂單詳情起到一個中間表的作用:

orderdetail類:

sql語句:

測試結果:

相關焦點

  • 一對一,一對多,反向,多對一,多對多——這就是我們的人生
    ,一對多?什麼是多對一,多對多?為什麼恰恰是反向?舉個例子吧,男生聊天時會和一個女生聊,但也會和多個女生聊,我們再反過來,男生聊天的那多個女生,是否每個女生在和你聊,又和多個男生聊?這就是一對一,一對多,反向,多對一,多對多。我們日常思考以及表現是根據自己的主觀能動性進行判斷的,而忽略了換位思考,換一個角度講,你能這麼做,別人也能這麼做。
  • 一對一退潮、雙師課上位 2021在線教育江湖格局生變
    一對一退潮實際上,在線一對一模式曾是許多在線教育機構的重點業務,海風教育、學霸君、掌門教育、猿輔導等多家公司都曾在一對一賽道進行布局。發展到今天,還停留在一對一賽道的卻並不多。猿輔導更是早早將目光轉向了在線班課。此外,2018年,理優一對一、學霸一對一相繼被曝出資金鍊斷裂、停課的傳聞,再加上明星在線教育機構學霸君宣布一對一和班課歇業,整個在線一對一賽道稍顯落寞。
  • 心理諮詢案例:為什麼越來越多的人不喜歡我
    心理諮詢案例:為什麼越來越多的人不喜歡我心理諮詢師:在人際交往中,多久的距離最為合適婷婷,女,30歲,某企業文員。參加工作五年來,在單位的人際關係越來越差,連帶著回到家裡的情緒也不好。最近一段時間,連她最好的朋友也與她產生了矛盾。
  • 八字案例:求子多年終如願的女命
    藝燊/文八字案例:求子多年終如願的女命
  • 八字案例:與父無緣命的多婚命
    八字案例:與父無緣命的多婚命1,看父親:
  • 多點MiniOS賦能物美便利店入選2020CCFA連鎖便利店數位化創新案例
    12月28日,多點Dmall零售聯合雲MiniOS賦能物美便利店一體化創新實踐,納入「2020年CCFA連鎖便利店數位化創新案例」。中國連鎖經營協會(CCFA)常務副秘書長王洪濤在便利店大會上對多點模式予以肯定,他表示:「便利店數位化有兩條路可以選擇,一是頭部企業投入之後管理能力溢出賦能行業,多點是典型案例。
  • 營口英菲尼迪Q50全車納多灰汽車改色貼膜案例欣賞
    其實,還有一種網紅色,那就是納多灰色,據說寶馬 納多灰色總是賣斷貨,而納多灰色的奧迪要加價5萬才能提到車,但是現在改色膜的出現,解決了一切想法。【改色車型】英菲尼迪Q50【改色顏色】納多灰【改色亮點】萬物皆有靈魂,這一切來源於外表和內在的精神力量,讓車主愛不釋手的是硬朗的線條勾勒和澎湃動力輸出,深黑的車身改色膜又為它增加一份剛勁有力的顏值。
  • 二手車為什麼故障多?以真實維修案例告訴你,看完就全明白了
    因為買過二手車的人都吃過這樣的啞巴虧,車剛買來明明是好的,開著也很順手,可是當開了沒多長時間就故障頻發,不是這裡磨損就是那裡漏油,二手車為什麼故障這麼多?下面以真實案例告訴你,看完就全明白了。身邊一位開汽車維修店的朋友最近接到這樣一個客戶,說自己的車子掛上檔不走,同時還有一股濃烈的糊味傳出,這到底是哪裡出了問題呢?
  • 塔羅牌佔卜免費:你生日願望實現的概率有多高
    只是並不是人人都能夠那麼幸運的實現的,有的人願望可能就永遠實現不了。那麼你生日願望實現的概率有多高呢?一起用塔羅牌來看下吧。↓↓↓↓↓↓↓↓↓↓選擇A:月亮正位 你生日願望實現的概率是100%,這是因為你要的都是簡單的小幸福。所以你不會許下很難的願望,對於你來說,能夠多吃幾頓自己喜歡的飯菜,這就足夠讓你心情很美好了。
  • 澳門供卵試管嬰兒成功率有多高?
    近年也經常聽到大家會選擇到澳門做供卵試管嬰兒,那麼澳門供卵試管嬰兒成功率有多高?有什麼優勢呢?   隨著這些年輔助生殖技術的發展,試管嬰兒技術不僅僅分為一代二代三代,還可以細分成供卵試管嬰兒、供精試管嬰兒等等。
  • 心理學:想要從心理層面摧毀一個人有多簡單?這3件小事就足夠了
    從心理學角度上將,想要摧毀一個人有多簡單?比你想像的還要容易。大量的心理問題的案例擺在那裡,從中你會發現,人的內心比想像的還要脆弱。可能只是很小的一些事情,就能輕而易舉的摧毀一個人。比如下面這三件小事。
  • 一對一輔導,265名志願者和抗疫醫務工作者的孩子初步配對
    一對一輔導,265名志願者和抗疫醫務工作者的孩子初步配對 澎湃新聞見習記者 張慧 記者 鄭浩 2020-02-18 22:52 來源:澎湃新聞
  • 中國移動「和多號」:不換手機、不換SIM卡、實現一卡多號!
    其實手機卡"副號"是運營商提供的一卡多號業務,在不換手機、SIM卡的基礎上,用戶可以增加最多3個真實手機號作為副號。一卡多號就是一個手機可擁有多個號碼。用戶在不更換手機和SIM卡的前提下,可增加多個真實手機號作為副號,當副號關機時,相關電話和簡訊業務都會被主號接管。
  • ...潘緒宏通報多起典型案例。案例一:2020年12月23日,順義警方接...
    潘緒宏通報多起典型案例。案例一:2020年12月23日,順義警方接群眾報警稱:其家人信息在多個微信群中洩露傳播,對生活和工作造成影響。經警方調查,某航空安保有限公司員工劉某(男,41歲)在工作期間,將用於篩查密接人員工作的患者初步流調報告,私自拍攝並發至微信群內,導致患者及其家屬、同事的姓名、身份證號碼、家庭住址、工作單位、手機號碼等隱私洩露。
  • 獅子座美女多 獅子座美女多還是天蠍座
    獅子座美女多獅子男是一個大男子主義非常嚴重的人,有時候他們給人的感覺非常的自私,但是他們身上總是有著一股無形的吸引力,不論做什麼事情的時候都是很乾淨利索的,給人的感覺非常的踏實,非常的可靠,你知道在十二星座中,獅子男為啥都愛雙子女,誰吸引誰嗎?
  • Java項目實踐,CountDownLatch實現多線程閉鎖
    摘要本文主要介紹Java多線程並發中閉鎖(Latch)的基本概念、原理、示例代碼、應用場景,通過學習,可以掌握多線程並發時閉鎖(Latch)的使用方法。概念「閉鎖」就是指一個被鎖住了的門將線程a擋在了門外(等待執行),只有當門打開後(其他線程執行完畢),門上的鎖才會被打開,a才能夠繼續執行。
  • 家用多臺網絡路由器如何實現串聯?
    所以為了享受到更好的網絡服務,有時我們需要多臺路由器完成串聯。最終效果:增加了無線信號,可以實現設備無線上網。第三種:搭建新網絡,即子網絡目的:接入鄰居、房東或者公司網絡時,將新增的路由器當作獨立路由器使用。
  • 江蘇高職與獨立學院「聯姻」如何實現升格 多贏
    近日,江蘇多所面臨轉設的獨立學院傳出消息,將與省內高職院校合併組建新的大學,帶動地方本科教育資源「擴容」。消息一出就引發了各方廣泛關注。其實,早在去年5月,教育部關於推進獨立學院轉設工作的實施方案中,就提出獨立學院整合高職院校資源合併轉設這條路徑,鼓勵各地探索統籌省內高職高專教育資源合併轉設。「合併轉設」的浪潮是否已在路上?
  • 程式設計師:java使用線程池和TCP實現簡單多輪聊天系統
    代碼實現服務端package com.tcp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import
  • 案例:財多身弱行印比運,利事業財運
    瀚海易學陳瀚海/文案例:女,陽曆1991年8月2日未時,老師好!目前在國企單位上班,工作穩定,但收入並不算高,不知未來事業發展前景如何?感情目前單身,找不到合適的人,想問問老師,何時才能結婚安定?本局地支土多水不顯,唯獨辰中暗藏癸水做調候用神,逢大運見水,庫滿福多,諸事順遂。地支未土為天乙貴人,甲木日主自帶天月二德,貴人過多,多則不貴,女命貴人多亦要注意與異性交往的尺度,防爛桃花糾纏。二、格局方面月令取格為正財格。本局格強身弱,喜印比幫身,走水木大運則利財運事業,財旺為忌,走財旺大運反主一般。