相同點:sql Hibernate和Mybatis的二級緩存除了採用系統默認的緩存機制外,均可以經過實現你本身的緩存或爲其餘第三方緩 存方案,建立適配器來徹底覆蓋緩存行爲。數據庫 不一樣點:緩存 Hibernate的二級緩存配置在SessionFactory生成的配置文件中進行詳細配置,而後再在具體的表-對象映射中配置是那種緩存。框架 MyBatis的二級緩存配置都是在每一個具體的表-對象映射中進行詳細配置,這樣針對不一樣的表能夠自定義不一樣的緩存機制。而且Mybatis能夠在命名空間中共享相同的緩存配置和實例,經過Cache-ref來實現。性能 |
比較:優化
Hibernate的DAO層開發比MyBatis簡單,Mybatis須要維護SQL和結果映射。hibernate
Hibernate對對象的維護和緩存要比MyBatis好,對增刪改查的對象的維護要方便。開放源代碼
Hibernate數據庫移植性很好,MyBatis的數據庫移植性很差,不一樣的數據庫須要寫不一樣SQL。對象
Hibernate有更好的二級緩存機制,可使用第三方緩存。MyBatis自己提供的緩存機制不佳。開發
MyBatis能夠進行更爲細緻的SQL優化,能夠減小查詢字段。
MyBatis容易掌握,而Hibernate門檻較高。
Mybatis:小巧、方便、高效、簡單、直接、半自動化
Hibernate:強大、方便、高效、複雜、間接、全自動化