1、hibernate真正掌握要比mybatis难,因为hibernate的功能和特性非常多,还不适合多表关联查询。
2、hibernate查询会将所有关联表的字段全部查询出来,会导致性能消耗,当然hibernate也可以自己写sql指定字段,但这就破坏了hibernate的简洁性。mybatis的sql是自己手动编写的,所以可以指定查询字段。
3、hibernate与数据库管联只需在xml文件中配置即可,所有的HQL语句都与具体使用的数据库无关,移植性很好;mybatis所有的sql都是依赖所用数据库的,所以移植性差。
4、hibernate是在jdbc上进行一次封装,mybatis是基于原生的jdbc,运行速度较快。
5、如果有上千万的表或者单次查询或提交百万数据以上不建议使用hibernate。如果统计功能、多表关联查询较多较复杂建议使用mybatis。