mybatis與hibernate的對比

本文非原創,不定時收集更新,歡迎你們交流討論,添加內容。java

相同點程序員

(1)Hibernate與MyBatis都是經過SessionFactoryBuider由XML配置文件生成SessionFactory,由SessionFactory 生成Session,由Session來開啓執行事務和SQL(Structured Query Language,結構化查詢語言)語句。sql

(2)Hibernate和MyBatis都支持JDBC(Java DataBase Connectivity,java數據庫鏈接)和JTA(Java Transaction API,Java事務APIApplication Programming Interface,應用程序編程接口))事務處理。數據庫

注:jdbc和jta的主要做用是加強數據訪問能力。編程

(3)基於ORM(Object Relational Mapping, 對象關係映射)思想解決了entity和數據庫的映射問題緩存

 

不一樣點:mybatis

(1)sql方面:mybaits經過mapper.xml維護映射結果,程序員手動編寫sql相比hibernate自動生成hql(hibernate sql)更加靈活,sql調優更加容易(hibernate由於更好的封裝性,開發效率提升的同時,sql語句調優要更費力,固然能夠手動修改sql來優化,可是同時也會影響開發效率);hibernate的hql數據庫移植性更好,體如今強壯性。hibernate在級聯刪除的時候效率低;數據量大, 表多的時候,基於關係操做會變得複雜。app

(2)緩存方面:mybatis和hibernate均可以使用第三方緩存,而hibernate相比maybatis有更好的二級緩存機制。ide

相關文章
相關標籤/搜索