hibernate mybatis_阿里如果把MyBatis换成hibernate,618能扛住?

众所周知,阿里巴巴的持久层选择了MyBatis框架。

但是根据JVM生态系统报告,在ORM框架中使用MyBatis的占比仅有6%!大量国外企业和开发者,更倾向于使用Hibernate。MyBatis似乎只在国内流行?

26e5dcfb9b0715a324f396fe539a96eb.png

ORM使用状况

相信很多人都用过hibernate,你觉得它与MyBatis哪个更优秀呢?

阿里巴巴的持久层为什么选择MyBatis?如果换成hibernate,能否扛住618、双11?

关于这些疑问,也和很多同事讨论过,最后还是阿里的一位大神给出了答案:

1、阿里在mysql上下了大功夫,对数据查询的要求也比较高,很多sql查询都要精心设计;

2、阿里这种scale的网站服务,对cache的依赖是非常大的,对cache逻辑的要求非常高,而且一定要具体问题,具体优化。hibernate自带的cache并不能满足像阿里这样的公司的需求;

3、hibernate在你项目开始时候省事,但是会导致业务逻辑模型和数据库模型互相依赖的程度太高,一旦项目变迁,随便改一处数据库的schema,整个java项目可能要改几十处!而MyBatis的自动mapping做的也不差,开发起来也没多花多少时间。等项目进入中后期,你需要大量定制和优化查询的时候,MyBatis的开发效率就胜出了。

4、很多地方Hibernate可以强大到只用一行代码解决很多问题,但比如说一个update()或者save()到底做了什么,这里既有hibernate本身的逻辑,也有你应用的逻辑,如果这一行产生了问题,你该如何去做?而MyBatis的开发和调优更加方便简单。

阿里如果用hibernate,平时还好,赶上618、双十一这种大促,那只有死路一条了。

所以阿里巴巴的持久层抛弃hibernate,采用了MyBatis框架。

Mybatis简单高效, 学习成本低,很少增加工作量;架构来说功能单一,场景明确,耦合度低,无状态,面向sql 语句的,便于在业务代码里分布式部署,优化起来也方便,非常符合现在的开发节奏。

7e61184be932abfd318f1942ea2a9f69.png

MyBatis学习路线

但是很多工作3、5年的程序员,对于MyBatis的诸多妙用依然一知半解。MyBatis其实学习起来不难,但是自行学习的话很容易遇到各种问题,比如导入MyBatis源码时报错;一对多查询时,只查询到一条或部分数据等…

这5个MyBatis经典面试题,你能答上来几个?

1.MyBatis源码中用了哪些设计模式?为什么要用这些设计模式?

2.日志级别设置为Debug之后,在控制台能打印访问数据库的sql语句等信息,在Mybatis中这是怎么实现的?实现过程中使用了什么设计模式?

3.MyBatis是如何为二级缓存动态添加日志、同步控制、阻塞、缓存淘汰策略等附加能力的?用了什么设计模式?

4.请描述从数据库连接池获取一个数据连接的过程;

5.什么是缓存雪崩?如何解决?

为了让大家快速掌握MyBatis,我特邀资深架构师、复旦大学硕士Lison老师为大家带来《 MyBatis 》系列直播分享,带你摸清MyBatis的骨架,从源码角度深度理解MyBatis框架,3天时间,从入门到精通!

c92354b9e203688ab20751c18f6cc217.png

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


Lison老师:

腾讯特邀技术专家,资深架构师,10余年java行业经验。

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

适合人群:

1.适合有一定java基础;

2.具备一定自学能力;

3.敢于突破自己,挑战高薪;

4.立志于成为高级程序员、架构师;

课程大纲

6.16

MyBatis骨骼惊奇 果然是必学的秘籍

1.这些问题不会?你对MyBatis一无所知!

2.摸一摸骨架,快速了解MyBatis的全貌;

3.格式化你的大脑,谈谈面向对象的设计原则;

4.隐藏在日志模块的两个设计模式;

6.17

金三银四必备,源码必问面试题解答

1.如何给功能进行无侵入性的增强?

2.源码中到底用了哪些设计模式?为什么要用?

3.有什么优雅的方式创建复杂对象?

4.你能说清楚数据库连接池的底层机制吗?

6.18

深入剖析MyBatis两级缓存的设计与实现

1.什么是MyBatis的两级缓存?

2.解决缓存设计与实现之殇;

3.解决缓存雪崩?源码中找到答案;

4.十分钟解密MyBatis运行流程;

f9f08653ba89a377d932570794afb081.png

附赠Java架构资料及MyBatis全套资料

60d53c00f386c673551ff32c1d846cd9.png

扫码添加肉兰老师报名

如遇扫码受限,请添加微信: xx2068425757 “3天带你精通MyBatis”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值