MyBatis知多少(26)MyBatis和Hibernate區別

iBatis和Hibernate之間有着較大的差別,但二者解決方案很好,由於他們有特定的領域。我我的建議使用MyBatis的,若是:html

  • 你想建立本身的SQL,並願意維持他們.數據庫

  • 你的環境是由關係數據模型驅動的。緩存

  • 你的項目工做有複雜架構的。架構

簡單地要使用Hibernate,若是:框架

  • 你的環境是由對象模型驅動的,並但願自動生成的SQL。工具

要計算的一些區別:spa

  • MyBatis:
    • 簡單調試

    • 更快的開發時間htm

    • 靈活對象

    • 封裝尺寸更小

  • Hibernate:
    • 爲你生成SQL,這意味着你不用花時間在SQL上。

    • 提供了許多更先進的高速緩存

    • 高可擴展性

另外一個區別是,MyBatis利用SQL語句多是依賴數據庫,使用Hibernate的HQL是相對獨立於數據庫,它是更容易改變數據庫。

Hibernate映射的Java做爲POJO對象,MyBatis將ResultSet映射,從JDBC API給出POJO OBJETS的數據庫表。

若是您使用存儲過程,那麼在Hibernate中能夠作到這一點,但它在MyBatis比較有點困難。做爲一種替代的解決方案MyBatis的映射結果集對象,因此不必去關心表結構。這很是適用於存儲過程,很是適用於報表應用程序等

最後,Hibernate和MyBatis的都是開源的對象關係映射(ORM)在同行業中可用的工具。使用這些工具的取決於你。Hibernate和MyBatis二者也有來自Spring框架的良好支持,以便它不該該是一個問題,選擇其中之一。

系列文章:

MyBatis知多少(1)

MyBatis知多少(2)

MyBatis知多少(3)

MyBatis知多少(4)MyBatis的優點

MyBatis知多少(5)業務對象模型

MyBatis知多少(6)表現層與業務邏輯層

MyBatis知多少(7)持久層

MyBatis知多少(8)關係型數據庫

MyBatis知多少(9)不一樣類型的數據庫

MyBatis知多少(10)應用程序數據庫

MyBatis知多少(11)企業數據庫

MyBatis知多少(12)私有數據庫

MyBatis知多少(13)MyBatis如何解決數據庫的常見問題

MyBatis知多少(14)分散的數據庫系統

MyBatis知多少(15)數據模型

MyBatis知多少(16)MyBatis映射

MyBatis知多少(17)MyBatis和JDBC

MyBatis知多少(18)MyBatis系統

MyBatis知多少(19)MyBatis操做

MyBatis知多少(20)MyBatis讀取操做

MyBatis知多少(21)更新操做

MyBatis知多少(22)MyBatis刪除操做

MyBatis知多少(23)MyBatis結果映射

MyBatis知多少(24)存儲過程

MyBatis知多少(25)動態SQL

MyBatis知多少(26)調試

相關文章
相關標籤/搜索