Mybatis優勢
- MyBatis可以進行更爲細緻的SQL優化,可以減少查詢字段。
- MyBatis容易掌握,而Hibernate門檻較高。
Hibernate優勢
- Hibernate的DAO層開發比MyBatis簡單,Mybatis需要維護SQL和結果映射。
- Hibernate對對象的維護和緩存要比MyBatis好,對增刪改查的對象的維護要方便。
- Hibernate數據庫移植性很好,MyBatis的數據庫移植性不好,不同的數據庫需要寫不同SQL。
- Hibernate有更好的二級緩存機制,可以使用第三方緩存。MyBatis本身提供的緩存機制不佳。
他人總結
- Hibernate功能強大,數據庫無關性好,O/R映射能力強,如果你對Hibernate相當精通,而且對Hibernate進行了適當的封裝,那麼你的項目整個持久層代碼會相當簡單,需要寫的代碼很少,開發速度很快,非常爽。
- Hibernate的缺點就是學習門檻不低,要精通門檻更高,而且怎麼設計O/R映射,在性能和對象模型之間如何權衡取得平衡,以及怎樣用好Hibernate方面需要你的經驗和能力都很強纔行。
- iBATIS入門簡單,即學即用,提供了數據庫查詢的自動對象綁定功能,而且延續了很好的SQL使用經驗,對於沒有那麼高的對象模型要求的項目來說,相當完美。
- iBATIS的缺點就是框架還是比較簡陋,功能尚有缺失,雖然簡化了數據綁定代碼,但是整個底層數據庫查詢實際還是要自己寫的,工作量也比較大,而且不太容易適應快速數據庫修改。