對象關系映射(ORM)提供了壹種概念性的、易於理解的數據建模方法。ORM方法基於三個核心原則:簡單:以最基本的形式對數據進行建模。交流性:數據庫結構是用任何人都能理解的語言記錄的。準確性:基於數據模型創建正確的標準化結構。通常,建模人員通過從熟悉應用程序但不擅長數據建模的人那裏收集信息來開發信息模型。建模人員必須能夠以非技術企業專家可以理解的方式在概念層面與數據結構進行交流。建模者還必須能夠分析簡單單元中的信息並處理樣本數據。ORM是專門為改善這種聯系而設計的。對象關系數據庫映射規則表達式ORM將應用程序世界表示為壹組具有角色(關系中的部分)的對象(實體或值)。ORM有時被稱為基於事實的建模,因為它將相關數據描述為基本事實。如果這些事實被分成更小的事實,它們將丟失信息。壹些簡單事實的例子包括:人們有電話,人們住在某個地方,人們在某個日期出生,人們在某個日期就業。ORM不僅僅提供了壹種簡單直接的方法來描述不同對象之間的關系。ORM還提供了靈活性。ORM創建的模型比其他方法創建的模型更能適應系統的變化。此外,ORM允許非技術企業專家根據樣本數據談論模型,因此他們可以使用真實世界的數據來驗證模型。因為ORM允許重用對象,所以數據模型可以自動映射到正確的標準化數據庫結構。ORM模型的簡單性簡化了數據庫查詢過程。使用ORM查詢工具,用戶可以在不了解數據庫底層結構的情況下訪問所需數據。對象關系映射(ORM)是壹種解決面向對象和關系數據庫不匹配的技術。簡單地說,ORM通過使用描述對象和數據庫之間映射的元數據,自動將java程序中的對象持久化到關系數據庫中。本質上,它是將數據從壹種形式轉換為另壹種形式。這也意味著額外的執行開銷;但是,如果ORM作為中間件實現,將有很多優化的機會,這在手寫的持久層中是不存在的。更重要的是,需要提供和管理用於控制轉換的元數據;但是同樣,這些費用比保持筆跡的方案要少;此外,即使是符合ODMG標準的對象數據庫仍然需要類級別的元數據。對象/關系映射是隨著面向對象軟件開發方法的發展而產生的。面向對象開發方法是當今企業應用程序開發環境中的主流開發方法,而關系數據庫是企業應用程序環境中永久存儲數據的主流數據存儲系統。對象和關系數據是業務實體的兩種表現形式。業務實體在內存中表示為對象,在數據庫中表示為關系數據。內存中對象之間存在關聯和繼承關系,但在數據庫中,關系數據無法直接表達多對多的關聯和繼承關系。因此,對象關系映射(ORM)系統壹般以中間件的形式存在,主要實現程序對象到關系數據庫數據的映射。面向對象是從軟件工程的基本原理(如耦合、聚合和封裝)發展而來的,而關系數據庫是從數學理論發展而來的。這兩種理論之間有顯著的差異。為了解決這種不匹配,對象關系映射技術應運而生。先說o/r,字母o來自“對象”,而r來自“相對”。幾乎所有程序中都有對象和關系數據庫。在業務邏輯層和用戶界面層,我們是面向對象的。當對象信息發生變化時,我們需要將對象信息保存在關系數據庫中。當您開發應用程序(沒有O/R映射)時,您可能會編寫大量數據訪問層代碼來保存、刪除和讀取數據庫中的對象信息等。妳已經在DAL中編寫了許多方法來讀取對象數據、更改對象狀態等等。這些代碼總是重復編寫。如果您打開最近的程序並查看DAL代碼,您肯定會看到許多類似的通用模式。讓我們以保存對象的方法為例。您傳入壹個對象,向SqlCommand對象添加壹個SqlParameter,將所有屬性與該對象相關聯,將SqlCommand的CommandText屬性設置為存儲過程,然後運行SqlCommand。為每個對象重復編寫這段代碼。除此之外,還有更好的辦法嗎?是的,引入O/R映射。實質上,O/R映射將為您生成DAL。不要自己編寫DAL代碼,而是使用O/R映射。您使用O/R映射來保存、刪除和讀取對象。O/R映射負責生成SQL,您只需要關心對象。對象關系映射已經成功應用於不同的面向對象持久化產品中,如:TORQUE、OJB、Hibernate、TOPLink、CastorJDO、TJDO等。