框架學習系列 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 第十二篇映射文件之輸出映射


※框架學習系列 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