使用自己開發的ORM數據層的好處

使用了對象映射轉換層確實可以大幅簡化開發工作,但最近研究了各家數據層的有缺點後,我發現自己開發數據層可能更划算些:

1. 向Hibernate等著名ORM產品號稱緩存的命中率達90%以上,但如果應用時分佈到多臺服務器上,甚至是客戶端時,其緩存命中率會差得一塌糊塗, 於是乎大家都在說建立在其上建立應用緩存,但應用緩存會帶來髒讀、衝突等諸多問題。而自己編制數據層就可有選擇的處理緩存問題,顯著提高效率。

2. 面向對象編程一個很突出的特點就是其支持繼承,而繼承的實現在數據庫設計中有兩種方式:

   1) 父子類使用同一張表,特點是效率較高,但多個對象數的據在一起會浪費部分空間

   2) 父子類使用不同的表,並用相同的鍵值對(ID)關聯,其轉換的效率會低,且如果某一對象的各個子類都沒有附加數據,反而會增加鍵值對的空間。

   如果出現更加複雜的父子類之間的關聯關係,處理不好可能造成循環引用,因此通用的ORM產品都乾脆做了很多限制,也就是說其無法完全實現所設計的對象結構體系,而自己設計ORM就可以解決這類問題。

 

3. 更靈活的數據庫操作,雖然某些輕型ORM支持對數據庫的直接操作,但如果自定義的數據層設得當,實現起來會更加方便。

 

4. 更靈活的數據關聯處理,在數據庫中表間的關聯有級聯刪除/置空等操作,而實際上對象間的刪除及更新處理也相對複雜,有時需要級聯刪,有時需要置空,而有時又禁止刪除,因此使用複雜的配置文件處理來處理去,可能還不如直接寫在代碼裏更直觀些。

 

  其實,自己開發數據層耗時也不大,用Hibernate一週完成的事情,自己做可能2周也就出來了,而且後期對象的增減、功能增減可以做的更靈活。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章