当前位置:首页 > 每日看点 > 正文内容

springdatajpa明明很不错了,为什么现在还是这么多人吹myatis?

卡卷网1年前 (2025-01-10)每日看点208

兄弟,既然你问到这儿了,我就给你掰扯掰扯。看得出来,你可能是听了不少“jpa是个好东西”的声音,但是在实际工作中又看到老油条们在项目里用myatis用得飞起,有点纳闷了吧?说白了,这是个新手碰上实际作的问题,咱得从根上分析清楚。

已收录于,我的技术:ddkk里面有,500套技术系列教程、1万+道,面试八股文、AT面试题、简历模版,工作经验分享、架构师成长之路,等等什么都有,欢迎收和转发。

1.<>JPA是个好东西,但实起来有点水土不服

JPA这玩意儿,理论上挺香,自动化程度高,封装得挺到位,尤其是对着一套ORM(对象关系映射),一看就很有范儿。你可以轻轻松松用几个注解就搞定数据表映射、关联关系啥的。要是按理来说,大家都用它,那代码岂不是清爽无?

但是吧,理想很丰满,现实很骨感。你用起来,你就会发现,它跟咱们的业务场景有点“不太对味”。咱们平时的项目,说难听点,就是“死磕”数据库,查询复杂点,JPA那自动生成的SQL就开始掉链子了,性能问题暴露无遗。最关键的是,JPA那种懒加载(lazyloading)和级联作(cascade),表面上看是为你省事,但上生产环境,调优的时候就让你一脑袋包。你得一个一个坑踩过来,SQL搞不定就得硬着头皮写原生查询,那干嘛不一开始就用Myatis呢?

2.<>Myatis是湖,能搞定各种刁钻需求

Myatis的优势在哪儿呢?说白了,就是一个“自由”。Myatis给你全权控制权,SQL你爱怎么写怎么写,复杂查询、联表、子查询随便你折腾。你不怕麻烦的话,性能调优也随你搞。这就好是大厨做饭,菜谱在手,调料用量自个儿把控,味道正不正宗,全凭你手艺,出了问题也跑不了。

再说,Myatis的灵活度高,适配复杂业务场景。举个例子,咱们搞电商项目,查询用户订单,你可能需要多表联查,数据处理还挺复杂的。这时候用Myatis就非常顺手,你可以针对每个查询写特定的SQL,还能动态生成,根据不同条件组装不同SQL语句,这个灵活性JPA拍马不及。

3.<>Myatis好调试,出了问题直接上数据库查,简单粗暴

调试上,JPA有时候会让人崩溃,你得去理解它生成的SQL,得琢磨它的各种抽象层。出了问题,堆栈信息半天看不懂。Myatis就不一样了,SQL写死了,出了问题你直接把SQL拿到数据库一跑,立马见分晓。你再调优加个索引啥的,也是心中有数,知根知底。

4.<>企业里,业务需求千奇百怪,Myatis更能满足客户刁钻需求

企业业务复杂多变,有些需求三天两头在变,尤其是那种动不动就要查个千八百条记录、复杂度爆表的需求。JPA那套自动生成SQL的机制有时候就跟不上趟儿了。Myatis呢?你尽管写SQL,动态SQL也行,条件组合随你玩儿,这样才是打野战的正确姿势。

5.<>Myatis的生态已经根深蒂固,成熟稳定

Myatis说白了就是个湖了,在Ja圈混迹多年,生态成熟,周边工具、插件一大堆,各种作都有现成的轮子。JPA这边嘛,虽然有一些,但是起Myatis的广泛应用,还是有点差距。

6.<>回到问题,为什么Myatis依然这么流行?

最后总结一下,Myatis能这么流行,说白了就是它灵活,强大,适合复杂场景,调试容易,企业客户爱用这套,而且生态稳定。JPA虽然好,但更多是适合那些简单点、变化少的场景。而咱们的项目嘛,客户需求变化快如风,老板又要求上项目像打仗,Myatis才是那把趁手的兵器。

所以兄弟,下次碰到这种问题,别纠结,记住老油条的一句话:工具适合自己才是最重要的,不管别人吹啥,Myatis能搞定活儿,那它就是好东西。

7.免费看500套技术教程的,希望对你有帮助

弟弟快看-教程,程序员编程资料站|DDKK.COM

<>推荐SpringDataJPA系列文章,希望对你有帮助

    01、SpringDataJPA实战-JPA、Spring-Data-Jpa简介02、SpringDataJPA实战-JPA基本注解03、SpringDataJPA实战-关联关系常用注解04、SpringDataJPA实战-Naming命名策略,源码跟踪05、SpringDataJPA实战-可嵌入对象和元素的使用06、SpringDataJPA实战-spring-data-commons中的repository07、SpringDataJPA实战-JpaRepository08、SpringDataJPA实战-定义方法查询09、SpringDataJPA实战-注解式方法查询之@NamedQuery、@NamedNativeQuery10、SpringDataJPA实战-注解式方法查询之@Query、@Modifying与派生delete11、SpringDataJPA实战-抓取策略与实体图12、SpringDataJPA实战-投影Projections-对查询结果的扩展13、SpringDataJPA实战-动态查询接口JpaSpecificationExecutor14、SpringDataJPA实战-自定义Repository15、SpringDataJPA实战-Auditing与@MappedSuperclass16、SpringDataJPA实战--@Version与@Lock17、SpringDataJPA实战-对We模块的支持18、SpringDataJPA实战-PA的继承策略19、SpringDataJPA实战-JPA的持久性上下文20、SpringDataJPA实战-@EnaleJpaRepositories21、SpringDataJPA实战-DataSoce与JPA属性配置22、SpringDataJPA实战-事务处理23、SpringDataJPA实战-JPA配置多个数据源

Myatis-Plus系列文章

    01、Myatis-Plus入门-MyatisPlus插件简介02、Myatis-Plus入门-分页插件PaginationInnerInterceptor03、Myatis-Plus入门-数据权限插件DataPermissionInterceptor04、Myatis-Plus入门-多租户插件TenantLineInnerInterceptor05、Myatis-Plus入门-动态表名插件DynamicTaleNameInnerInterceptor06、Myatis-Plus入门-防止全表更新与删除插件lockAttackInnerInterceptor07、Myatis-Plus入门-乐观锁插件OptimisticLockerInnerInterceptor08、Myatis-Plus入门-sql性能规范插件IllegalSQLInnerInterceptor09、Myatis-Plus入门-逻辑删除10、Myatis-Plus入门-自动填充功能11、Myatis-Plus入门-Sql注入器及源码分析12、Myatis-Plus入门-erv接口CRUD详解13、Myatis-Plus入门-自定义ID生成器14、Myatis-Plus入门-条件构造器15、Myatis-Plus入门-代码生成器(3.5.0版本)16、Myatis-Plus入门-代码生成器源码解析及生成VO案例17、Myatis-Plus入门-多租户插件TenantLineInnerInterceptor源码解析18、Myatis-Plus入门-基于注解的动态数据权限实现方案19、Myatis-Plus入门-多数据源使用详解20、Myatis-Plus入门-兼容多种数据库8.这个东西:让我offer拿到手软

无意间获得一份7000多页阿里大佬写的刷题笔记,原来进大厂没那么难,七千页的AT大佬写的刷题笔记,让我offer拿到手软

9.求一键三连:点赞、分享、收

已收录于,我的技术:ddkk里面有,500套技术系列教程、1万+道,面试八股文、AT面试题、简历模版,工作经验分享、架构师成长之路,等等什么都有,欢迎收和转发。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8420.html

分享给朋友:

相关文章

支付宝碰一碰市场如何?

支付宝碰一碰市场如何?

今年,支付宝又整了新的大活,即无须扫码即能完成支付操作的“支付宝碰一碰”正式登场。下面就来给大家分析分析,这是个什么情况,为什么都在说能赚钱。支付宝碰一下怎么赚钱的?都有谁能赚到这份钱?1.支付宝碰一下原理支付宝碰一下的本质依旧是“条码支付...

打印速度慢,是不是打印机cpu不行?

打印速度慢,是不是打印机cpu不行?

打印机是机械设备,cpu内存硬盘它也有但这只是它的电控部分,打印机类似于汽车属于机电一体化设备和电脑不是一个类型的产品。很多人总是认为打印机和电脑是一类产品,实际上这是一个误区,电脑是it(Information Technology)信息...

常微分方程的理论对偏微分方程的研究有没有帮助?

常微分方程的理论对偏微分方程的研究有没有帮助?

之前看到过一句话,好像是 Bourgain 说的,大意是做 ode 的做到深处就到了 pde,做 pde 的做到深处就到了 ode,ode 和 pde 最后是相通的。以我目前有限的知识,只知道下面两个方向:1. Hamilton 系统在现代...

鸿蒙系统到底是不是安卓系统?

你好,是的。接下来我给不懂技术的人简单的说一下哄蒙系统的来龙去脉。首先你要知道什么是开源。‌‌开源(Open Source)全称为开放源代码‌,意味着任何人都可以获取和使用软件的源代码,并在遵守版权协议的前提下进行修改和再发布。‌12开源软...

为什么小公司留不住人?

为什么小公司留不住人?

我估计,整个知乎,可能没有比我公司再小得了,。。正对面就是我唯一的一个员工的工位。为啥留不住人。因为那些留不住人的老板,太拿自己当回事。大公司靠制度。小公司靠人情。我这儿的业务,因为全都是线上,所以员工来不来坐班都不重要。天太热可以不来,下...

为什么原来说 7 nm 是半导体工艺的极限,但现在又被突破了?

10年前我们觉得65nm工艺是极限,因为到了65nm节点二氧化硅绝缘层漏电已经不可容忍。所以工业界搞出了HKMG,用high-k介质取代了二氧化硅,传统的多晶硅-二氧化硅-单晶硅结构变成了金属-highK-单晶硅结构。5年前我们觉得22nm...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。