標籤:

Mybatis9:Mybatis與Hibernate區別

mybatis:

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

2. 可以進行更為細緻的SQL優化,可以減少查詢欄位。

3. 缺點就是框架還是比較簡陋,功能尚有缺失,雖然簡化了數據綁定代碼,但是整個底層資料庫查詢實際還是要自己寫的,工作量也比較大,而且不太容易適應快速資料庫修改。

4. 二級緩存機制不佳。

hibernate:

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

2. 有更好的二級緩存機制,可以使用第三方緩存。

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

4.Hibernate的DAO層開發比MyBatis簡單,Mybatis需要維護SQL和結果映射。

5.hibernate資料庫移植性遠大於mybatis。

hibernate通過它強大的映射結構和hql語言,大大降低了對象與資料庫(oracle、mysql等)的耦合性,而mybatis由於需要手寫sql,因此與資料庫的耦合性直接取決於程序員寫sql的方法,如果sql不具通用性而用了很多某資料庫特性的sql語句的話,移植性也會隨之降低很多,成本很高。


推薦閱讀:

Mybatis1:基礎
如何在mybatis中調試查看生成的sql語句?
mybatis和hibernate區別大不大?

TAG:MyBatis |