ORM架構簡介

來源:互聯網
上載者:User

標籤:

對象關係映射(ORM Object Relational Mapping)提供了概念性的、易於理解的模型化資料的方法。ORM方法論基於三個核心原則: 簡單:以最基本的形式建模資料。 傳達性:資料庫結構被任何人都能理解的語言文檔化。 精確性:基於資料模型建立正確標準化了的結構。 典型地,建模者通過收集來自那些熟悉應用程式但不熟練的資料建模者的人的資訊開發資訊模型。建模者必須能夠用非技術企業專家可以理解的術語在概念層次上與資料結構進行通訊。建模者也必須能以簡單的單元分析資訊,對樣本資料進行處理。ORM專門被設計為改進這種聯絡。

對象-關係映射(Object/Relation Mapping,簡稱ORM),是隨著物件導向的軟體開發方法發展而產生的。物件導向的開發方法是當今企業級應用開發環境中的主流開發方法,關聯式資料庫是企業級應用環境中永久存放資料的主流資料存放區系統。對象和關係資料是業務實體的兩種表現形式,業務實體在記憶體中表現為對象,在資料庫中表現為關係資料。記憶體中的對象之間存在關聯和繼承關係,而在資料庫中,關係資料無法直接表達多對多關聯和繼承關係。因此,對象-關係映射(ORM)系統一般以中介軟體的形式存在,主要實現程式對象到關聯式資料庫資料的映射。  物件導向是從軟體工程基本原則(如耦合、彙總、封裝)的基礎上發展起來的,而關聯式資料庫則是從數學理論發展而來的,兩套理論存在顯著的區別。為瞭解決這個不匹配的現象,對象關係映射技術應運而生。  讓我們從O/R開始。字母O起源於"對象"(Object),而R則來自於"關係"(Relational)。幾乎所有的程式裡面,都存在對象和關聯式資料庫。在商務邏輯層和使用者介面層中,我們是物件導向的。當對象資訊發生變化的時候,我們需要把對象的資訊儲存在關聯式資料庫中。  當你開發一個應用程式的時候(不使用O/R Mapping),你可能會寫不少資料訪問層的代碼,用來從資料庫儲存,刪除,讀取對象資訊,等等。你在DAL中寫了很多的方法來讀取對象資料,改變狀態物件等等任務。而這些代碼寫起來總是重複的。  如果開啟你最近的程式,看看DAL代碼,你肯定會看到很多近似的通用的模式。我們以儲存對象的方法為例,你傳入一個對象,為SqlCommand對象添加SqlParameter,把所有屬性和對象對應,設定SqlCommand的CommandText屬性為預存程序,然後運行SqlCommand。對於每個對象都要重複的寫這些代碼。  除此之外,還有更好的辦法嗎?有,引入一個O/R Mapping。實質上,一個O/R Mapping會為你產生DAL。與其自己寫DAL代碼,不如用O/R Mapping。你用O/R Mapping儲存,刪除,讀取對象,O/R Mapping負責產生SQL,你只需要關心對象就好。  對象關係映射成功運用在不同的物件導向持久層產品中,如:Torque,OJB,hibernate,TopLink,Castor JDO, TJDO 等。  一般的ORM包括以下四部分:  一個對持久類對象進行CRUD操作的API;  一個語言或API用來規定與類和類屬性相關的查詢;  一個規定mapping metadata的工具;  一種技術可以讓ORM的實現同事務對象一起進行dirty checking, lazy association fetching以及其他的最佳化操作。


ORM架構簡介

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.