基本介紹
- 中文名:對象關係映射
- 外文名:Object Relational Mapping
- 別稱:ORM
- 適用領域範圍:程式開發
定義,實際套用,
定義
對象-關係映射(Object/Relation Mapping,簡稱ORM),是隨著面向對象的軟體開發方法發展而產生的。面向對象的開發方法是當今企業級套用開發環境中的主流開發方法,關係資料庫是企業級套用環境中永久存放數據的主流數據存儲系統。對象和關係數據是業務實體的兩種表現形式,業務實體在記憶體中表現為對象,在資料庫中表現為關係數據。記憶體中的對象之間存在關聯和繼承關係,而在資料庫中,關係數據無法直接表達多對多關聯和繼承關係。因此,對象-關係映射(ORM)系統一般以中間件的形式存在,主要實現程式對象到關係資料庫數據的映射。
實際套用
實際套用中即在關係型資料庫和業務實體對象之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的SQL語句打交道,只要像平時操作對象一樣操作它就可以了。
ORM框架就是用於實現ORM技術的程式。
常見的ORM框架有:Hibernate、TopLink、Castor JDO、Apache OJB等。
ORM框架就是用於實現ORM技術的程式。
常見的ORM框架有:Hibernate、TopLink、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>
<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>