第六章 Hibernate与Mybatis对比总结
两者相同点
- Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。
- Hibernate和MyBatis都支持JDBC和JTA事务处理。
Mybatis优势
- MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
- MyBatis容易掌握,而Hibernate门槛较高。
Hibernate优势
- Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
- Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
- Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
- Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。
本文来自:http://blog.csdn.net/firejuly/article/details/8190229
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hibernate是一个高度封装的基于ORM的框架
对象关系映射能力强,数据库无关性好
高度封装,不用写SQL,开发的时候简单,缩短开发周期,
对于关系型数据库要求不高
缺点:由于是框架生成sql,导致其sql无法优化,并且其应用场景为用户量少,并发量小的项目
Mybatis 不是一个基于ORM的框架
是一个对jdbc轻量级的封装,相对于Hibernate来说比较简单,
并且sql灵活并且可以优化,可以通过xml或者注解方法来配置sql,执行效率高,速度快
可以对复杂的关系型数据库做处理
缺点:sql灵活意味着代码量大,开发周期慢,应用于互联网企业一般为用户量大,并发量大的项目