mybatis與hibernate的比較



MyBatishibernate的比較:

共同點:

1一個共同的思想ORM

1. 從配置文件(通常是XML配置文件中)得到sessionfactory.
2.
sessionfactory  產生 session
3.
session 中完成對數據的增刪改查和事務提交等.
4.
在用完之後關閉session
5.
java 對象和 數據庫之間有做mapping 的配置文件,也通常是xml 文件

 

2 HibernateMyBatis都可以是通過 SessionFactoryBuiderXML配置文件生成SessionFactory,然後由SessionFactory 生成Session,最後由Session來開啓執行事務和SQL語句。其中SessionFactoryBuiderSessionFactorySession的生命週期都是差不多的。

 

3 HibernateMyBatis都支持JDBCJTA事務處理。

 

區別:

Mybatis自動提交事務。Hibernate是手動提交事務。

Mybatis導入一個主jar就基本滿足,只有600kb大小,hibernate導入的jar更多。

Mybatis配好了數據庫方言,不能任意更改。Hibernate更換數據庫比較方便,修改下配置信息就可以(前提是使用的HQL語言操作數據)。

Mybatis面向接口編程。hibernate面向對象編程。

Mybatis中的事務概念模糊,例如詳細的事務的開啓、關閉、回滾等,至多是session.save() --- 提交,比較明顯。

 

 

Mybatis優勢:

  1. MyBatis可以進行更爲細緻的SQL優化,可以減少查詢字段。

  2. MyBatis容易掌握,而Hibernate門檻較高。

 

 

Hibernate優勢:

  1. HibernateDAO層(持久層)開發比MyBatis簡單Mybatis需要維護SQL和結果映射。

2.  Hibernate對對象的維護和緩存要比MyBatis,對增刪改查的對象的維護要方便。

3.  Hibernate數據庫移植性很好MyBatis的數據庫移植性不好,不同的數據庫需要寫不同SQL

4.  Hibernate有更好的緩存機制,可以使用二級緩存、查詢緩存。MyBatis本身提供的緩存機制不佳。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章