MyBatis知多少(16)MyBatis映射

以前咱們詳細地討論了MyBatis背後的設計理念以及iBATIS框架是如何產生的。也說明了MyBatis是一個混合型解決方案,它從處理關係數據庫的其餘不一樣方法那裏借鑑了許多思想。那麼MyBatis究竟是什麼呢?html

MyBatis就是咱們一般所說的數據映射器。所謂映射器層,是用於在對象和數據庫之間搬運數據,同時保證對象、數據庫以及映射器自己都相互獨立。數據庫

0/RM工具將數據庫表及其列映射爲應用程序中的類及字段。或者說, 0/RM工具在數據庫的元數據與類的元數據之間創建起了一種映射關係。app

MyBatis與0/RM不一樣,它不是直接把類映射爲數據庫表或者說把類的字段映射爲數據庫列, 而是把SQL語句的參數與結果(也即輸入和輸出)映射爲類。正如你將在本書的後續部分中學到 的,iBATIS在類和數據庫表之間創建了一個額外的間接層,這就爲如何在類和數據庫表之間創建 映射關係帶來了更大的靈活性,使得在不用改變數據模型或者對象模型的狀況下改變它們的映射 關係成爲可能。其實咱們這裏討論的這個間接層就是SQL。SQL這個額外的間接層使得iBATIS能夠更好地隔離數據庫設計和應用程序中使用的對象模型。這就使得它們二者之間的相關性降至最低。圖展現了MyBatis如何使用SQL映射數據。框架

Person數據庫設計

 

Personide

identifier工具

 

IDspa

firstName設計

 

FIRST NAMEhtm

lastName

直接映射

LAST一NAME

middleName

 

MIDDLE NAME

hairColor

 

HAIR COLOR

height

 

HEIGHT

weight

 

WEIGHT

Person類

 

必須和PERSON表相匹配

 

 

圖對象/關係映射

MyBatis的映射層其實就是SQL。MyBatis讓你編寫SQL語句。MyBatis負責在類 的特性和數據庫表的列之間映射參數和結果。基於這個緣由,也考慮到與其餘各類 各樣的映射方式的區分,爲避免混淆,MyBatis團隊一般將所謂的「數據映射器」稱爲SQL映射器。如圖2-2所示,iBATIS的映射層其實就是SQL。MyBatis讓你編寫SQL語句。MyBatis負責在類 的特性和數據庫表的列之間映射參數和結果。基於這個緣由,也考慮到與其餘各類 各樣的映射方式的區分,爲避免混淆,MyBatis團隊一般將所謂的「數據映射器」稱爲SQL映射器 (SQL mapper)。

系列文章:

MyBatis知多少(1)

MyBatis知多少(2)

MyBatis知多少(3)

MyBatis知多少(4)MyBatis的優點

MyBatis知多少(5)業務對象模型

MyBatis知多少(6)表現層與業務邏輯層

MyBatis知多少(7)持久層

MyBatis知多少(8)關係型數據庫

MyBatis知多少(9)不一樣類型的數據庫

MyBatis知多少(10)應用程序數據庫

MyBatis知多少(11)企業數據庫

MyBatis知多少(12)私有數據庫

MyBatis知多少(13)MyBatis如何解決數據庫的常見問題

MyBatis知多少(14)分散的數據庫系統

MyBatis知多少(15)數據模型

相關文章
相關標籤/搜索