hibernate和mybatis區別

二者區別

開發方面
        在項目開發過程中,就速度而言:
            hibernate開發中,sql語句已經被封裝,直接可使用,加快系統開發;
            Mybatis 屬於半自動化,sql須要手工完成,稍微繁瑣;
        可是,凡事都不是絕對的,若是對於龐大複雜的系統項目來講,發雜語句較多,選擇hibernate 就不是一個好方案。
sql優化方面
        Hibernate 自動生成sql,有些語句較爲繁瑣,會多消耗一些性能;
        Mybatis 手動編寫sql,能夠避免不須要的查詢,提升系統性能;
對象管理比對
        Hibernate 是完整的對象-關係映射的框架,開發工程中,無需過多關注底層實現,只要去管理對象便可;
        Mybatis 須要自行管理 映射關係;
緩存方面    

相同點:sql

Hibernate和Mybatis的二級緩存除了採用系統默認的緩存機制外,均可以經過實現你本身的緩存或爲其餘第三方緩    存方案,建立適配器來徹底覆蓋緩存行爲。數據庫

不一樣點:緩存

Hibernate的二級緩存配置在SessionFactory生成的配置文件中進行詳細配置,而後再在具體的表-對象映射中配置是那種緩存。框架

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


 

 

 

 

比較:優化

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

Hibernate優點

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

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

  3. Hibernate數據庫移植性很好,MyBatis的數據庫移植性很差,不一樣的數據庫須要寫不一樣SQL。開發

  4. Hibernate有更好的二級緩存機制,可使用第三方緩存。MyBatis自己提供的緩存機制不佳。自動化

Mybatis優點

  1. MyBatis能夠進行更爲細緻的SQL優化,能夠減小查詢字段。

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

一句話總結

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

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

相關文章
相關標籤/搜索