【MyBatis】MyBatis與Hibernate比較

1. Mybatis與Hibernate區別

1.1 表格比較

功能 MyBatis Hibernate
開發速度 上手容易 相對掌握困難
開發工做量 手寫SQL語句 也能夠手寫SQL語句,但破壞了Hibernate封裝和簡潔性
擴展性 由於是手寫SQL,全部擴展性好,但遷移性差 數據庫關係關聯都在XML中,因此HQL對是什麼數據庫不關心
移植性 很差,針對不一樣的數據庫寫不一樣的SQL 較好
一級緩存 SQLSession Session緩存
二級緩存 在每一個具體的表-對象映射中進行詳細配置 在SessionFactory生成的配置文件中進行詳細配置,
而後再在具體的表-對象映射中配置是那種緩存

1.2 二者相同點

Hibernate與MyBatis均可以是經過SessionFactoryBuider由XML配置文件生成SessionFactory,而後由SessionFactory 生成Session,最後由Session來開啓執行事務和SQL語句。數據庫

1.3 二者不一樣點

  1. 而MyBatis的優點是MyBatis能夠進行更爲細緻的SQL優化,能夠減小查詢字段,而且容易掌握。
  2. Hibernate的優點是DAO層開發比MyBatis簡單,Mybatis須要維護SQL和結果映射。
  3. Hibernate數據庫移植性很好,MyBatis的數據庫移植性很差,不一樣的數據庫須要寫不一樣SQL。
  4. Hibernate有更好的二級緩存機制,可使用第三方緩存。MyBatis自己提供的緩存機制不佳。
相關文章
相關標籤/搜索