1.从学习成本来说:hibernate的学习成本比mybatis的学习成本高。
2.sql优化方面来说:
hibernate使用封装好的通用sql但查询效率低,会查询所有字段降低效率。可以重写sql但是违背了框架的初衷。
mybatis是针对场景指定sql,更加灵活,好优化,可控性高。sql手动编写但可控制查询效率。
3.移植性来说:
hibernate 与数据库的关联在xml配置,hql语句与数据库的选型无关,移植性比较好。
mybatis 所有sql依赖于数据库 不同数据库类型的支持不太好
4.与jdbc对比来说:
hibernate 封装了jdbc
mybatis 基于jdbc,有运行速度的优势
技术选型:
hibernate适合后台管理系统
mybatis适合数据量大,表关系复杂的项目