Hibernate和MyBatis,该怎么选?

有个很有趣的现象,在国内火的一塌糊涂的MyBatis,根据JVM生态系统报告,大量的开发者,在ORM框架中使用MyBatis的占比仅有6%,国外的程序员更倾向于使用Hibernate。

ORM使用状况

但是阿里巴巴的持久层选择了MyBatis,如果双11用Hibernate,会怎么样?为什么国内外对于ORM框架的使用为什么会有这么大的差异?

关于这个,也和很多同事讨论过,也咨询了一些国际友人,最后总结了一下,感觉是因为老外的项目,在数据体量和种类上完全达不到国内的水平。所以对性能上的要求没那么高。国外一个项目做几年、十几年是很正常的。而在国内,互联网项目追求的是高性能,尤其是数据库查询的时候,在并发量高的情况下需要对SQL 语句进行调优。一个双11,如果用Hibernate,那只有死路一条了。

而支持定制化SQL、存储过程以及高级映射的优秀的持久层框架MyBatis,现在大家都不陌生,作为半自动ORM框架,在国内互联网大厂必用。

倒不是MyBatis一定比Hibernate好。两者各有优劣,做企业级应用时,可以考虑用Hibernate,但是会埋下一性能的坑;做互联网级应用时,建议还是用MyBatis吧。

综合来说,MyBatis的优点是简单高效, 学习成本低,不增加额外工作量(或很少增加),架构来说MyBatis功能单一,场景明确,耦合度低,无状态,面向SQL 语句的,便于(放在业务代码里)分布式部署,优化起来也方便,比较符合现在的开发节奏。

现在的互联网公司都是先快速开发占领市场,然后再优化代码。而且这个过程需求经常是变来变去的,开发人员也有流动性,这种情况下用MyBatis显然更加适合。

MyBatis学习路线

为什么我们有时候工作中感觉很多技术都差不多?

我们在工作中,做架构设计的难处在于业务、成本、性能,三方面都有需求,但是往往不可能都满足。很多系统的开发没有很复杂的业务,成本有限,性能要求也不高,就会造成一个错觉,技术上用什么都可以。但是每个系统,每个组件,每个工具都有自己的特性和适用范围。只有碰到天花板,才能开启新的大门。

很多工作3、5年的程序员,就是如此,工作中接触的技术有限,对于MyBatis的诸多妙用依然一知半解。

为了带大家发现MyBatis的全新世界,我特地邀请了资深架构师、复旦大学硕士Lison老师为大家带来《MyBatis》系列直播课,带你摸清MyBatis的骨架,同时从源码角度深度理解MyBatis,原价199元,公众号粉丝限时专享0.1元,限量200个名额!

在线直播,有疑问,现场解决!


《MyBatis从青铜到王者之路》

原价199元,本公众号粉丝专享限时0.1元


Lison老师:

资深架构师,10余年java行业经验。

专精领域:精通JAVA、J2EE和前端开发,擅长互联网高并发、高可靠架构设计;

课程大纲

3.10

骨骼惊奇的MyBatis

1.摸清MyBatis的骨架

2.日志模块分析

3.11

数据源与缓存的实现

1.数据源模块分析

2.缓存模块分析

3.12

学习源码的正确姿势

1.MyBatis的核心运行流程

2.看源码的正确姿势


附赠7.8G的Java架构进阶、视频资料

及程序员简历模板(简历做好,面试就成功了一半)

扫码添加肉兰老师报名

“掌握MyBatis要多久?”

“3天。”

“但是学会之后一定要不断练习。”

发布了456 篇原创文章 · 获赞 3134 · 访问量 41万+

猜你喜欢

转载自blog.csdn.net/coderising/article/details/104788017