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

相关文章
相关标签/搜索