網站首頁 編程語言 正文
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
相關推薦
- 2023-02-04 C語言實現繪制可愛的橘子鐘表_C 語言
- 2023-04-24 NumPy矩陣乘法的實現_python
- 2022-10-17 React?中的?useContext使用方法_React
- 2022-04-12 jieba.posseg.cut分詞結果與jieba.cut不一致
- 2022-08-14 Python?Selenium彈窗處理操作指南_python
- 2023-07-07 React中useState的setState方法請求了好多次
- 2024-07-14 Guava自加載緩存LoadingCache
- 2022-12-30 antd之RangePicker設置默認值方式_React
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支