日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

MyBatis實現多表查詢(一對一、一對多)的方式

作者:l1050188952 更新時間: 2022-09-25 編程語言

MyBtis的多表查詢方式有兩種:sqlMapper配置文件和注解

具體代碼實現如下:

首先我們以兩張數據庫表學生和班級為例,一個學生只對應一個班級(一對一),一個班級對應多個學生(一對多)。表如下:

學生表:

?班級表:

?

方式一:sqlMapper配置文件

一對一:在resultMap標簽中使用 association 標簽

sqlMappe.xml實現一對一:

注意:單表查詢只需用<result>標簽寫映射不上的內容,但多表聯查必須把需要的映射關系都寫上

代碼實現結果:

?

標注:綠色框內是學生信息,右邊框內是每個學生對應的班級信息。?

一對多:在resultMap標簽中使用collection?標簽

sqlMappe.xml實現一對多:

?注意:ofType屬性寫的是集合對應的類型,不能寫List。

代碼實現結果:

?注釋:* 級聯操作會降低性能,增加程序執行時間,多層關聯式建議不超過三層

方式二:注解

?

一對一:在@Results?注解中的@Result注解中使用@One注解

一對一注解代碼:

?

注意:?班級Mapper中findById的參數來自學生Mapper的@Result對應外部屬性名映射的column屬性,One的路徑一只寫到xx.xx.x.方法名

代碼結果實現:

注意:雖然只是一對一的查詢,但是對于數據庫是多次訪問的,如下圖

?

一對多:在@Results?注解中的@Result?注解中使用@Many注解

一對多注解代碼:

????????????????????????????????????????????????????????班級Mapper的注解↓

StudentMapper對應方法↓

?

注釋:一對多和一對一的區別在@many注解,其他基本都是一樣的?

代碼結果實現:

? ? ? ?

以上就是關于MyBatis實現多表查詢(一對一、一對多)的兩種方式圖示

?

原文鏈接:https://blog.csdn.net/l1050188952/article/details/125411662

欄目分類
最近更新