揭秘MyBatis为什么在阿里等大厂这么流行

为什么MyBatis能在国内大厂里这么流行?

Mybatis之所以流行的一个原因是上手快,当学完JDBC之后,再去学习Mybatis,上手时间要比Hibernate快。一个技术学习成本低,也是一个优势,毕竟企业招人是让员工帮他写代码的,基本不会给出太多时间让员工去学习(资本家)。

另外一个原因就是sql优化上了,业务复杂的sql语句通常需要进行优化,此时操作Mybatis更加容易一些。

现在spring boot和Mybatis plus的出现,使Mybatis使用起来更加简单了。

所以在大多数场景里,MyBatis更适合。

为什么阿里巴巴的持久层抛弃Hibernate,采用MyBatis框架?

原因大概有以下4点:

1、阿里在Mybatis上下了大功夫,他们对数据查询的要求也比较高,很多sql查询都要精心设计。而Hibernate把数据库和你隔离了,如果使用Hibernate,虽然能对生成的查询进行一定程度的定制,但开发起来付出的代价更大。

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

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

4、很多地方Hibernate可以强大到只用一行代码解决很多问题,但比如说一个update()或者save()到底做了什么,这里既有Hibernate本身的逻辑,也有你应用的逻辑,如果这一行产生了问题,你该如何去做?而MyBatis的开发和调优更加方便简单。尤其是需要处理大量数据或者大并发情况的网站服务,这也阿里选择MyBatis的原因。


大厂都在用MyBatis,跳槽的时候MyBatis更是面试必问的内容,那你对于MyBatis又掌握了多少呢?

下面这5道阿里关于MyBatis的面试题,你能答上来几道?

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

2、MyBatis打开调试模式之后,能打印sql语句等信息,这是怎么实现的?实现过程中使用了什么设计模式?

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

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

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

为了能让大家快速掌握MyBatis,升职加薪、跳槽大厂的时候更有底气。

今天特意向大家强力推荐好友讲解的《MyBatis》系列集训营,最近我也正在熬夜学习中。

粉丝福利:《MyBatis》系列急训课程 ,原价199元,现在公众号粉丝限时专享 元!


2天快速提升大家的技术水平!

在线实时答疑,有疑问,当场解决

参加集训营能学到什么?

  1. 学会用面向对象的角度去欣赏代码;

  2. 解构框架设计理念;

  3. 剖析设计原则在框架中的使用;

  4. 重新组合手写实现,完成源码学习能力的升华;

  5. 学完能自己剖析开源框架;

最后一次冒泡,扫码你就可以获得:

(1)领取笔记和架构资料,参与MyBatis特训

(2)扫码参与全程直播,领取录播回放

(3)让十年资深架构师带你手把手构建框架

长按扫码,立即报名

《1元带你手写一个MyBatis框架》

画外音:用最短的时间来吸收大牛10年的经验,非常值得。

文末提示:程序员们都在学习,了解一下也无妨!

发布了18 篇原创文章 · 获赞 133 · 访问量 27万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览