程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Hibernate 與Mybatis 區別,hibernatemybatis

Hibernate 與Mybatis 區別,hibernatemybatis

編輯:JAVA綜合教程

Hibernate 與Mybatis 區別,hibernatemybatis


1 簡單簡介     1.1    Hibernate 框架          Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,建立對象與數據庫表的映射。是一個全自動的、完全面向對象的持久層框架。     1.2    Mybatis框架         Mybatis是一個開源對象關系映射框架,原名:ibatis,2010年由谷歌接管以後更名。是一個半自動化的持久層框架。 2 兩者區別     2.1 開發方面         在項目開發過程當中,就速度而言:             hibernate開發中,sql語句已經被封裝,直接可以使用,加快系統開發;             Mybatis 屬於半自動化,sql需要手工完成,稍微繁瑣;         但是,凡事都不是絕對的,如果對於龐大復雜的系統項目來說,發雜語句較多,選擇hibernate 就不是一個好方案。     2.2 sql優化方面         Hibernate 自動生成sql,有些語句較為繁瑣,會多消耗一些性能;         Mybatis 手動編寫sql,可以避免不需要的查詢,提高系統性能;     2.3 對象管理比對         Hibernate 是完整的對象-關系映射的框架,開發工程中,無需過多關注底層實現,只要去管理對象即可;         Mybatis 需要自行管理 映射關系;     2.4 緩存方面         
 相同點:
Hibernate和Mybatis的二級緩存除了采用系統默認的緩存機制外,都可以通過實現你自己的緩存或為其他第三方緩    存方案,創建適配器來完全覆蓋緩存行為。
 
不同點:
Hibernate的二級緩存配置在SessionFactory生成的配置文件中進行詳細配置,然後再在具體的表-對象映射中配置是那種緩存。

    MyBatis的二級緩存配置都是在每個具體的表-對象映射中進行詳細配置,這樣針對不同的表可以自定義不同的緩存機制。並且Mybatis可以在命名空間中共享相同的緩存配置和實例,通過Cache-ref來實現。

          比較:

          Hibernate 具有良好的管理機制,用戶不需要關注SQL,如果二級緩存出現髒數據,系統會保存,;            Mybatis 在使用的時候要謹慎,避免緩存CAche 的使用。

Hibernate優勢

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

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

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

  • Hibernate有更好的二級緩存機制,可以使用第三方緩存。MyBatis本身提供的緩存機制不佳。

Mybatis優勢

  • MyBatis可以進行更為細致的SQL優化,可以減少查詢字段。

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

一句話總結

Mybatis:小巧、方便、高效、簡單、直接、半自動化

Hibernate:強大、方便、高效、復雜、間接、全自動化

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved