运行速度 |
Hibernate是在JDBC上进行了一次封装,而mybatis基于原生的JDBC,因此mybatis天生就有运行速度上的优势。
开发工作量 |
Hibernate和MyBatis都有相应的代码生成工具。可以生成简单基本的DAO层方法。
针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于业务流程。
优势对比 |
Mybatis优势
• MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
• MyBatis容易掌握,而Hibernate门槛较高。
Hibernate优势
• Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
• Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
• Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
•Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。
总结 |
mybatis门槛低,容易掌握,并且SpringBoot也是无条件集成mabatis,但是hibernate也有自己独特的东西。所以我认为,存在即合理,既然两个框架都能成为流行的持久层框架,那么他们肯定都有他们各自的过人之处,重点在于使用者如何根据实际需求权衡选择合适的框架和设计而已。