<<< 相同點 >>>
1、Hibernate與MyBatis 都可以通過SessionFactoryBuilder 由 XML 配置文件生成SessionFactory, 然后再由SessionFactory 生成Session ,最后又 Session 來開啟執行事務和SQL語句。 Session, SessionFactory ,SessionFactory的生命周期都是差不多的。
2、二者都支持JDBC和JTA事務處理。
<<< 不同點 >>>
1、MyBatis 可以進行更加細致的優化,可以選擇性的查詢需要的字段。同時對多張表操作時,MyBatis更加具有優勢。
2、MyBatis容易掌握,Hibernate 比較難以掌握,比如Hibernate雖然可以不寫sql語句完成增刪改查的操作,卻需要按照既定的命名格式命名,學習成本高。
3、Hibernate 對增刪改查對象維護更加容易,效率也更高。
4、Hibernate的數據庫移植性更加好,可以通過修改方言完成數據庫的更改,Hibernate將根據方言自動生成符合的SQL語句。MyBatis的數據庫移植性不好,更改完數據庫后需要去一個一個的更改每條SQL語句,耗時耗力。
5、Hibernate有更好的二級緩存機制, 可以使用第三方緩存。MyBatis自身提供的緩存機制不夠方便。