1.开发速度对比
Hibernate的学习成本要比MyBatis高,MyBits框架相对容易上手。比较二者的开发速度,不仅要考虑两者的特性及性能,更要考虑项目需求究竟哪个更适合开发,比如:
一个项目中用到的复杂查询基本没有,就是最基本的增删改查,这样选择Hibernate的效率就要高些了,因为基本的SQL语句已经被封装好,根本不需要手写SQL,可以节省大量时间,但是对于一个大型项目,复杂的查询语句较多,使用MyBatis就会加快很多,而且SQL语句管理也会很方便。
2.开发工作量对比
MyBatis与Hibernate都有相应的代码生成工具,可以生成简单的DAO层方法。针对高级查询,MyBatis需要手动编写SQL语句及resultMap。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更关注于业务流程。
3.SQL优化方面
Hibernate的查询会将表中的所有字段查询出来,这一点会消耗性能。Hibernate也可以自己手写SQL指定要查询的字段,但这样就会破坏了Hibernate开发的简洁性,一般不推荐。而MyBatis的SQL语句是自己手写的,我们可以根据需求指定要查询的字段。 Hibernate的HQL语句调优需要将SQL打印出来,MyBatis的SQL是自己手动写的所以调整方便。但Hibernate具有自己的日志统计。Mybatis本身不带日志统计,使用Log4j进行日志记录。
4.对象管理的对比
Hibernate 是完整的对象/关系映射解决方案,它提供了对象状态管理(state mana