系列文章目录文章目录系列文章目录一、mybatis与hibernate的区别【面试问题】mybatis技术特点: hibernate技术特点:
一. mybatis与hibernate的区别【面食问题】mybatis的技术特点:
优点:
1、直接写SQL语句,可以直接优化SQL的性能
2、学习门槛低,学习成本低。 只要有SQL的基础,就可以学习mybatis,且容易上手;
(hibernate需要学习hql。 hql和sql还有点变化,所以hibernate的门槛相对更高)
3、直接写SQL语句,灵活,代码维护性好。
坏处:
4、无法支持数据库无关性。 也就是说,数据库发生了变化,必须编写和支持多个代码,可移植性差。
每个数据库的分页关键字都不一样,如分页
a ) MySQL :限制
b ) Oracle:rownum
这意味着Mybatis不支持数据库跨平台,但hibernate可以支持数据库跨平台
5、需要建立结果映射。
Hibernate的技术特点:优点:
1、标准的orm框架。 程序员不需要写SQL语句。 (但是,写hql有时甚至可以不写hql。)
2、数据库依赖性良好。 也就是说,如果数据库发生变化,就不需要重新编写代码。
a )然后,mysql数据迁移到oracle,只需更改方言的构成
缺点:
3、学习门槛较高,需要良好的数据关系模型基础,且设置OR映射时需考虑性能与目标模型之间的权衡。
4、程序员不能自主进行SQL性能优化。
=========================================================================================
Mybatis应用场景:
需求变化的互联网项目,如电子商务项目。
Hibernate应用场景:
需求明确、业务固定的项目,如OA项目、ERP项目等。