hibernate和ibatis的比較

來源:互聯網
上載者:User
Hibernate 是當前最流行的O/R mapping架構,它出身於sf.net,現在已經成為Jboss的一部分了

iBATIS 是另外一種優秀的O/R mapping架構。目前屬於apache的一個子項目了。

相對Hibernate“O/R”而言,iBATIS 是一種“Sql Mapping”的ORM實現。

Hibernate對資料庫結構提供了較為完整的封裝,Hibernate的O/R Mapping實現了POJO 和資料庫表之間的映射,以及SQL 的自動產生和執行。程式員往往只需定義好了POJO 到資料庫表的映射關係,即可通過Hibernate 提供的方法完成持久層操作。程式員甚至不需要對SQL 的熟練掌握, Hibernate/OJB 會根據制定的儲存邏輯,自動產生對應的SQL 並調用JDBC 介面加以執行。

而iBATIS 的著力點,則在於POJO 與SQL之間的映射關係。然後通過映射設定檔,將SQL所需的參數,以及返回的結果欄位對應到指定POJO。有一個開源工具abator,它可以產生sql語,和hibernate的工具一樣,特別好用。

二者的對比:
1. iBATIS非常簡單易學,Hibernate相對較複雜,門檻較高。

2. 二者都不需要手寫sql語句,因為有工具可以自動產生。hibernate的工具特別多,ibatis的工具有一個abator特別好用,可以產生bo,dao,xml.

3.當系統屬於二次開發,無法對資料庫結構做到控制和修改,那iBATIS的靈活性將比Hibernate更適合

4.系統資料處理量巨大,效能要求極為苛刻,這往往意味著我們必須通過經過高度最佳化的SQL語句(或預存程序)才能達到系統效能設計指標。在這種情況下iBATIS會有更好的可控性和表現。

5. 以資料庫欄位一一對應映射得到的PO和Hibernte這種對象化映射得到的PO是截然不同的,本質區別在於這種PO是扁平化的,不像Hibernate映射的PO是可以表達立體的對象繼承,彙總等等關係的,這將會直接影響到你的整個軟體系統的設計思路。

6.最關鍵的一句話是iBATIS的作者說的:

If you are starting a new project and you're in full control of your object model and database design, Hibernate 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

結論:選擇Hibernate還是iBATIS都有它的道理:

Hibernate功能強大,資料庫無關性好,O/R映射能力強,如果你對Hibernate相當精通,而且對Hibernate進行了適當的封裝,那麼你的項目整個持久層代碼會相當簡單,需要寫的代碼很少,開發速度很快,非常爽。

Hibernate的缺點就是學習門檻不低,要精通門檻更高,而且怎麼設計O/R映射,在效能和物件模型之間如何權衡取得平衡,以及怎樣用好Hibernate方面需要你的經驗和能力都很強才行。

iBATIS入門簡單,即學即用,提供了資料庫查詢的自動對象綁定功能,而且延續了很好的SQL使用經驗,對於沒有那麼高的物件模型要求的項目來說,相當完美。

iBATIS的缺點就是架構還是比較簡陋,功能尚有缺失,不太容易適應快速資料庫修改。

我的建議就是:

如果你的團隊沒有Hibernate高手,那麼請用iBATIS,要把Hibernate用好,並不容易;否則你應該選擇Hibernate,那樣你的開發速度和代碼簡潔性都相當棒! 

聯繫我們

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