为什么国内很多互联网公司不用Hibernate,而去采用Mybatis框架?

本文探讨了为什么许多国内互联网公司倾向于使用MyBatis而非Hibernate作为持久层框架。MyBatis的优势在于简化SQL操作,易于上手和优化,尤其是在配合Spring Boot和MyBatis Plus后,其便捷性更佳。阿里巴巴等公司选择MyBatis主要是因为其对SQL定制和优化的灵活性,以及在大规模项目中对cache管理和业务模型独立性的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么国内很多互联网公司不用Hibernate,而去采用Mybatis框架?

首先,我们来简单看一下MyBatis的优势
在这里插入图片描述
MyBatis 是一款非常优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。不仅避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。还可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs映射成数据库中的记录。
我们在使用传统JDBC时,往往需要写很多JDBC代码,需要自己写SQL语句以及自己装配参数,然后自己对结果集进行封装处理。
而Mybatis则帮我们简化了以上功能,只需要一些配置文件(xml)或是注解的方式即可完成对数据库的查询以及结果的映射封装。
为什么MyBatis能在国内大厂里这么流行?
Mybatis之所以流行的一个原因是上手快,当学完JDBC之后,再去学习Mybatis,上手时间要比Hibernate快。一个技术学习成本低,也是一个优势。
另外一个原因就是sql优化上了,业务复杂的sql语句通常需要进行优化,此时操作Mybatis更加容易一些。
现在spring boot和Mybatis plus的出现,使Mybatis使用起来更加简单了。所以在大多数场景里,MyBatis更适合。
为什么阿里巴巴的持久层抛弃Hibernate,采用MyBatis框架?
原因大概有以下4点:
1、阿里在Mybatis上下了大功夫,他们对数据查询的要求也比较高,而Hibernate把数据库和你隔离了,如果使用Hibernate,虽然能对生成的查询进行一定程度的定制,但开发起来付出的代价更大。
2、对于阿里这种规模的网站服务,对cache的依赖是非常大的,对cache逻辑的要求非常高,而且一定要具体问题,具体优化。Hibernate自带的cache并不能满足像阿里这样的公司的需求。
3、Hibernate在你项目开始时候省事,但是会导致业务逻辑模型和数据库模型互相依赖的程度太高,一旦项目变迁,随便改一处数据库的schema,整个java项目可能要改几十处!而MyBatis的自动mapping做的也不差,开发起来也没多花多少时间。等项目进入中后期,你需要大量定制和优化查询的时候,MyBatis的开发效率就胜出了。=
4、很多地方Hibernate可以强大到只用一行代码解决很多问题,但比如说一个update()或者save()到底做了什么,这里既有Hibernate本身的逻辑,也有你应用的逻辑,如果这一行产生了问题,你该如何去做?而MyBatis的开发和调优更加方便简单。尤其是需要处理大量数据或者大并发情况的网站服务,这也阿里选择MyBatis的原因。
在这里插入图片描述
大厂都在用MyBatis,跳槽的时候MyBatis更是面试必问的内容,那你对于MyBatis又掌握了多少呢?
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值