對象關係映射ORM,對象映射orm

來源:互聯網
上載者:User

對象關係映射ORM,對象映射orm

 

一、對象關係映射ORM概述
 

       對象關係映射(Object-Relational Mapping,簡稱ORM)是一種為瞭解決程式的物件導向模型與資料庫的關聯式模式互不匹配問題的技術;簡單的說,ORM是通過使用描述對象和資料庫之間映射的中繼資料(在Java中可以用XML或者是註解),將程式中的對象自動持久化到關聯式資料庫中或者將關聯式資料庫表中的行轉換成Java對象,其本質上就是將資料從一種形式轉換到另外一種形式。

       在ORM過程中最重要的概念是映射(Mapping),通過這種映射可以使業務對象與資料庫分離。從物件導向來說,資料庫不應該和商務邏輯綁定到一起,ORM則起到這樣的分離作用,使資料庫層透明,開發人員真正的物件導向。

      簡單說明了ORM在多層系統架構中的這個作用。

(圖片來自網路www.shsxt.com)

       目前大多數項目或產品都使用關係型資料庫實現業務資料的儲存,這樣在開發過程中,常常有一些商務邏輯需要直接用寫SQL語句實現,但這樣開發的結果是:遍地布滿SQL語句。這些高藕合的SQL語句給系統的改造和升級帶來很多無法預計的障礙。為了提高項目的靈活性,特別是快速開發,ORM是一個不錯的選擇。舉個簡單的例子:在使用ORM的系統中,當資料庫模型改變時,不再需要理會邏輯代碼和SQL語句中涉及到該模型的所有改動,只需要將該模型映射的對象稍作改動,甚至不做改動就可以滿足要求。

圖片來自網路(上海尚學堂)

二、ORM特性及優缺點1、ORM特性

        1.提高了開發效率。由於ORM可以自動對Entity對象與資料庫中的Table進列欄位與屬性的映射,所以我們實際可能已經不需要一個專用的、龐大的資料訪問層。
 
        2.ORM提供了對資料庫的映射,不用sql直接編碼,能夠像操作對象一樣從資料庫擷取資料。 
 

2、ORM優缺點

        ORM的缺點是會犧牲程式的執行效率和會固定思維模式。 
        從系統結構上來看,採用ORM的系統一般都是多層系統,系統的層次多了,效率就會降低。ORM是一種完全的物件導向的做法,而物件導向的做法也會對效能產生一定的影響。 

        在我們開發系統時,一般都有效能問題。效能問題主要產生在演算法不正確和與資料庫不正確的使用上。ORM所產生的程式碼一般不太可能寫出很高效的演算法,在資料 庫應用上更有可能會被誤用,主要體現在對持久對象的提取和和資料的加工處理上,如果用上了ORM,程式員很有可能將全部的資料提取到記憶體對象中,然後再進 行過濾和加工處理,這樣就容易產生效能問題。
 
        在對對象做持久化時,ORM一般會持久化所有的屬性,有時,這是不希望的。 
        但ORM是一種工具,工具確實能解決一些重複,簡單的勞動。這是不可否認的。但我們不能指望工具能一勞永逸的解決所有問題,有些問題還是需要特殊處理的,但需要特殊處理的部分對絕大多數的系統,應該是很少的。

感謝閱讀上海尚學堂文章,擷取更多文章或支援人員,請點擊 上海Java培訓

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.