NHibernate與IbatisNet的簡單比較

來源:互聯網
上載者:User

 

 

  NHibernate是當前最流行的Java O/R mapping架構Hibernate的移植版本,目前的版本是1.0 rc-1。它出身於sf.net..IbatisNet是另外一種優秀的Java O/R mapping架構,目前的版本是1.3。目前屬於apache的一個子項目了。
相對NHibernate“O/R”而言,IbatisNet是一種“Sql Mapping”的ORM實現。
NHibernate對資料庫結構提供了較為完整的封裝,NHibernate的O/R Mapping實現了PO 和資料庫表之間的映射,以及SQL 的自動產生和執行。程式員往往只需定義好了PO 到資料庫表的映射關係,即可通過NHibernate提供的方法完成持久層操作。程式員甚至不需要對SQL 的熟練掌握, NHibernate 會根據制定的儲存邏輯,自動產生對應的SQL 並調用ADO.NET介面加以執行。 
而IbatisNet的著力點,則在於PO 與SQL之間的映射關係。也就是說,IbatisNet並不會為程式員在運行期自動產生SQL 執行。具體的SQL 需要程式員編寫,然後通過映射設定檔,將SQL所需的參數,以及返回的結果欄位對應到指定PO。
使用IbatisNet提供的ORM機制,對商務邏輯實現人員而言,面對的是純粹的DotNet對象,這一層與通過NHibernate實現ORM 而言基本一致,而對於具體的資料操作,NHibernate會自動產生SQL 陳述式,而IbatisNet則要求開發人員編寫具體的SQL 陳述式。相對NHibernate而言,IbatisNet 以SQL開發的工作量和資料庫移植性上的讓步,為系統設計提供了更大的自由空間。  二者的對比:
1. IbatisNet非常簡單易學,NHibernate相對較複雜,門檻較高。
2.  二者都是比較優秀的開源產品
3.  當系統屬於二次開發,無法對資料庫結構做到控制和修改,那IbatisNet的靈活性將比NHibernate更適合
4.  系統資料處理量巨大,效能要求極為苛刻,這往往意味著我們必須通過經過高度最佳化的SQL語句(或預存程序)才能達到系統效能設計指標。在這種情況下IbatisNet會有更好的可控性和表現。
5.  IbatisNet需要手寫sql語句,也可以產生一部分,NHibernate則基本上可以自動產生,偶爾會寫一些Hql。同樣的需求,IbatisNet的工作量比NHibernate要大很多。類似的,如果涉及到資料庫欄位的修改,NHibernate修改的地方很少,而IbatisNet要把那些sql mapping的地方一一修改。
6.  以資料庫欄位一一對應映射得到的PO和NHibernte這種對象化映射得到的PO是截然不同的,本質區別在於這種PO是扁平化的,不像NHibernate映射的PO是可以表達立體的對象繼承,彙總等等關係的,這將會直接影響到你的整個軟體系統的設計思路。
7.  最關鍵的一句話是IbatisNet的作者說的:
If you are starting a new project and you're in full control of your object model and database design, NHibernate is a good choice of O/R tool.
If you are accessing any 3rd party databases (e.g. vendor supplied), or you're working with a legacy database, or even just a really poorly designed database, then an O/R mapper might not be capable of handling the situation. That's were an SQL Mapper comes in handy

 

聯繫我們

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