當前位置:
首頁 > 知識 > 框架學習系列 mybatis 第十七篇 高級結果映射一

框架學習系列 mybatis 第十七篇 高級結果映射一

1:數據模型分析

2:resultType的使用

3:總結&下節預告

本文是《凱哥陪你學系列-框架學習之mybatis框架學習》中第十七篇 高級結果映射一

在說結果映射之前,我們先來分析分析數據模型。

在了解了數據模型的情況下(業務下),才能知道具體需要返回什麼。

那麼,接下來,咱們開始學習

一:數據模型分析

實際業務:電商項目中訂單業務

四個表:訂單表(orders)、訂單明細表(orderdetail)、商品表(items)、用戶表(user)

商品表(items)欄位:

訂單明細表(orderdetail)欄位:

訂單表(orders)欄位:

用戶表(user):

需要分析數據模型:

1:明確每張表存儲的信息

知道四張表具體是幹嘛的,為什麼需要這四張表

2:明確每張表中關鍵欄位(主鍵、外建、非空等)

3:明確資料庫中表與表之間的外建關係

4:明確業務中表語表直接的關係(建立在具體的業務上)

具體的表之間關係如下圖

二:resultType的使用

2.1:一對一映射

需求:在查詢訂單信息的時候,同時關聯查詢出用戶信息。

從上圖中我們可以知道對應的表:

主表:order 從表:user

對應的sql語句:

使用resultType返回:

2.2:創建擴展類:

2.2.1:為什麼要創建擴展了?需求是查詢訂單信息的時候,關聯查詢出用戶信息啊

我們知道的:

訂單信息和用戶信息不在同一張表內。而我們主要查詢的是訂單的全部信息和用戶表中用戶名、性別這兩個欄位。

所以我們可以創建一個繼承了訂單表的類,同時這個類中又有用戶名和性別這兩個欄位。

這樣,我們的sql查詢完成的數據就可以直接返回這個擴展類中。

擴展類:OrderExt

2.3:對應的mapper映射文件

測試代碼:

三:總結

總結:

使用resultType來進行一對一結果映射,查詢出的列的個數和映射的屬性的個數要一致。而且映射的屬性要存在與一個大的對象中,它是一種平鋪式的映射,即資料庫查詢出多少條記錄,則映射成多少個對象。

框架學習系列 mybatis 第十六篇常用標籤三及比較

框架學習系列 mybatis 第十五篇動態sql及常用標籤二

框架學習系列 mybatis 第十四篇 動態sql一

框架學習系列 mybatis 第十三篇 全局配置文件 二

框架學習系列 mybatis 第十二篇映射文件之輸出映射


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

框架學習系列 mybatis 第十六篇常用標籤三及比較
框架學習系列 mybatis 第十五篇動態sql及常用標籤二
框架學習系列 mybatis 第十四篇 動態sql一
框架學習系列 mybatis 第十三篇 全局配置文件 二
框架學習系列 mybatis 第十二篇映射文件之輸出映射

TAG:凱哥java |

您可能感興趣

ArXiv最火深度學習框架:TensorFlow第一,PyTorch第二!
Karpathy更新深度學習開源框架排名:TensorFlow第一,PyTorch第二
ArXiv最受歡迎開源深度學習框架榜單:TensorFlow第一,PyTorch第四
ArXiv最受歡迎開源深度學習框架榜:TensorFlow第一,PyTorch第四
Keras vs PyTorch:誰是「第一」深度學習框架?
Mybatis框架複習大綱面試+提高
第55期:Python機器學習實踐指南、Tensorflow 實戰Google深度學習框架
微軟公布DirectX Raytracing API:現有框架內大跨越的一步
通向架構師的道路 ( 第二十二天 ) 萬能框架 spring ( 四 ) 使用 struts2
Amino——框架層
Angular 6 正式發布:統一框架、Material和CLI 三大模塊
類Keras的PyTorch 深度學習框架——PyToune
深度學習框架排行榜:找工作學TensorFlow,PyTorch搜索量逼近Keras
實現mybatis框架SQL映射文件SQL片段
一周AI大事盤點:全球超算500強公布,Facebook開源其PyRobot框架
Python爬蟲框架之pyspider
Web 前端框架 Angular 發布 7.0 首個 beta 版
微軟發布第七代微軟小冰和全新AI框架「Avatar Framework」
mybatis框架的動態sql語句
淺談Metasploit框架中的Payload