iBatis和Hibernate之間有着較大的差別,但二者解決方案很好,由於他們有特定的領域。我我的建議使用MyBatis的,若是:html
你想建立本身的SQL,並願意維持他們.數據庫
你的環境是由關係數據模型驅動的。緩存
你的項目工做有複雜架構的。架構
簡單地要使用Hibernate,若是:框架
你的環境是由對象模型驅動的,並但願自動生成的SQL。工具
要計算的一些區別:spa
簡單調試
更快的開發時間htm
靈活對象
封裝尺寸更小
爲你生成SQL,這意味着你不用花時間在SQL上。
提供了許多更先進的高速緩存
高可擴展性
另外一個區別是,MyBatis利用SQL語句多是依賴數據庫,使用Hibernate的HQL是相對獨立於數據庫,它是更容易改變數據庫。
Hibernate映射的Java做爲POJO對象,MyBatis將ResultSet映射,從JDBC API給出POJO OBJETS的數據庫表。
若是您使用存儲過程,那麼在Hibernate中能夠作到這一點,但它在MyBatis比較有點困難。做爲一種替代的解決方案MyBatis的映射結果集對象,因此不必去關心表結構。這很是適用於存儲過程,很是適用於報表應用程序等
最後,Hibernate和MyBatis的都是開源的對象關係映射(ORM)在同行業中可用的工具。使用這些工具的取決於你。Hibernate和MyBatis二者也有來自Spring框架的良好支持,以便它不該該是一個問題,選擇其中之一。
系列文章: