一、hibernate开发量更小
hibernate因为有良好的映射机制,针对高级查询,也可以不必手动编写sql,开发者可以更关注于业务逻辑而不用担心sql的生成和结果映射。
mybatis半自动指的是它在做高级查询时,必须手动写sql以及resultMap。
二、mybatis性能更好,更灵活
在sql优化方面,hibernate默认是会把表中所有的列都查出来的,而mybatis是自己指定要查哪些列。当然,hibernate允许自己指定查什么,但是就会破坏hibernate开发的简洁性。所以mybatis在sql优化上还是比hibernate灵活的。
三、hibernate数据库无关,但mybatis做复杂查询更加方便
hibernate强大的数据库无关性,只需在xml文件中配置驱动和方言,就可以实现和不同数据库的交互。而mybatis的所有sql和所使用的数据库有直接关系,一旦变更数据库,那么你的sql语句基本就是要修改了。
mybatis比hibernate更加适合开发复杂查询的项目,且更容易上手。