閑談orm(Object-Relational Mapping 對象-關係映射)

來源:互聯網
上載者:User

  關於資料庫crud(create retrieve update delete)自動化協助工具輔助,其中的翹楚必然是orm(對象-關係映射)工具。

  

hibernate,activerecord分別可以說是發揮了java,ruby語言哲學到極致的工具,其他動態語言的orm工具大都參考這兩者的架構和模式,使用他們的前提是掌握物件導向基礎(物件導向3原則及應用)和資料庫應用基礎(設計範式和SQL語言)。

  

相對簡單一點的是根據資料庫中獲得的表結構實現簡單crud功能的庫,但是因為功能太簡單,對於處理表和表之間的關聯關係力不從心,在我的實際經驗中很早就廢棄了。

  

說回靜態語言,c++語言目前為止沒有完整案例的orm工具,因為c++標準庫並不提供完整的反射庫,只提供了基礎的RTTI。沒有反射庫就寫不出orm,所以雖然有一小撮分子研究過自己寫反射庫,再寫orm,不過都流產了,要麼就變形了——利用有限的功能變相實現部分功能,在joel的部落格上有人發了c++ orm的討論,應者寥寥,討論中說到的類庫俺看了下,都不完整。

  那麼靜態語言就真的不行了?受中國億萬開發人員擁護的寶蘭公司(IDE部分已經因為入不敷出分拆出codegear公司)的王牌設計師Anders(亦為微軟設計了.net)所設計開發的vcl庫,擁有足夠的反射能力,國內一個delphi開發人員yyanghhong據此開發出了一個orm工具,據他最後javaeye的文章中說,將參考hibernate的結構實現delphi版的orm,不過也有1年多未有訊息了――可能和我一樣,1年前發布的改hibernate和tomcat的模組後,也有人問過我相關知識,但一個一直為吃飯忙乎的人是顧不上了。另有一位網友提供了一個開源的delphi orm emvc,目前只出到1.03alpha版,我還沒用過。

因為vcl庫的強悍,基於他的C++ Builder也擁有同等威力,經過我的研究,delphi和c++ builder都是有能力實現ORM的。

  在一個orm盛行的年代,靜態語言沒有自身的orm是痛苦的,對於C++在開發mis功能的時候,目前有些公司採用了搭配python,用python語言的orm庫來開發。

  

話到這裡就結束了,不愁吃飯的話我也想打磨打磨c++的orm,呵呵。

 

聯繫我們

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