對象關係映射(O/R Mapping)

對象關係映射

O/R Mapping一般指本詞條

對象關係映射(Object Relational Mapping,簡稱ORM)是通過使用描述對象和資料庫之間映射的元數據,將面向對象語言程式中的對象自動持久化到關係資料庫中。本質上就是將數據從一種形式轉換到另外一種形式。 這也同時暗示著額外的執行開銷;然而,如果ORM作為一種中間件實現,則會有很多機會做最佳化,而這些在手寫的持久層並不存在。 更重要的是用於控制轉換的元數據需要提供和管理;但是同樣,這些花費要比維護手寫的方案要少;而且就算是遵守ODMG規範的對象資料庫依然需要類級別的元數據。

基本介紹

  • 中文名:對象關係映射
  • 外文名:Object Relational Mapping
  • 別稱:ORM
  • 適用領域範圍:程式開發
定義,實際套用,

定義

對象-關係映射(Object/Relation Mapping,簡稱ORM),是隨著面向對象軟體開發方法發展而產生的。面向對象的開發方法是當今企業級套用開發環境中的主流開發方法,關係資料庫是企業級套用環境中永久存放數據的主流數據存儲系統。對象和關係數據是業務實體的兩種表現形式,業務實體在記憶體中表現為對象,在資料庫中表現為關係數據。記憶體中的對象之間存在關聯和繼承關係,而在資料庫中,關係數據無法直接表達多對多關聯和繼承關係。因此,對象-關係映射(ORM)系統一般以中間件的形式存在,主要實現程式對象到關係資料庫數據的映射。

實際套用

實際套用中即在關係型資料庫和業務實體對象之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的SQL語句打交道,只要像平時操作對象一樣操作它就可以了。
ORM框架就是用於實現ORM技術的程式。
常見的ORM框架有:HibernateTopLink、Castor JDO、Apache OJB等。
Java中ORM的原理: 先說ORM的實現原理,其實,要實現JavaBean的屬性到資料庫表的欄位的映射,任何ORM框架不外乎是讀某個配置檔案把JavaBean的屬 性和資料庫表的欄位自動關聯起來,當從資料庫Query時,自動把欄位的值塞進JavaBean的對應屬性里,當做INSERT或UPDATE時,自動把 JavaBean的屬性值綁定到SQL語句中。
一個簡單的映射例子(hibernate),我們定義User對象和資料庫中user表之間的關聯,user表中只有兩列:id和name:
<hibernate-mapping>
<class name="sample.orm.hibernate.User" table="user" catalog="test">
<id name="userID" type="java.lang.Integer">
<column name="id" />
<generator class="assigned" />
</id>
<property name="userName" type="java.lang.String">
<column name="name" />
</property>
</class>
</hibernate-mapping>

相關詞條

熱門詞條

聯絡我們