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