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

springboot使用mybatis plus总会涉及手写mapper,这么难用为啥还这么多人用?

卡卷网11个月前 (01-18)每日看点184

从CRUD工程师到工程师 - MyBatis Plus背后的辛酸史

作为一个从hibernate到mybatis,又到mybatis-plus的菜鸟,我也时常抱怨:为什么"难用"的技术反而大行其道。

springboot使用mybatis plus总会涉及手写mapper,这么难用为啥还这么多人用?  第1张

先说大实话

没错!!MyBatis Plus确实没有Django ORM那么优雅:

springboot使用mybatis plus总会涉及手写mapper,这么难用为啥还这么多人用?  第2张

# Django的写法,优雅如诗 User.objects.filter(age__gt=18).order_by('-create_time')


// MyBatis Plus的写法,像在写SQL @Select("SELECT * FROM user WHERE age > #{age} ORDER BY create_time DESC") List<User> getAdultUsers(@Param("age") Integer age);

为什么还是这么多人用?

Java生态从SSM框架一路发展而来,很多项目就是在老项目基础上迭代。这就像是一个有30年房龄的老小区,虽然新小区设施好,但搬家成本太高。

它对性能掌控还是很精准的

// 自定义SQL,性能自己说了算 @Select("SELECT id, name FROM user WHERE age > #{age} AND city = #{city}") List<User> getUsers(Integer age, String city);

而Django ORM虽然方便,但有时候生成的SQL会让你怀疑人生:

springboot使用mybatis plus总会涉及手写mapper,这么难用为啥还这么多人用?  第3张

SELECT ... FROM ... LEFT JOIN ... LEFT JOIN ... -- 明明只想要两个字段,结果查了整张表

它有很多企业级特性

多数据源动态切换、分页插件全自动配置、乐观锁插件、多租户 这些在企业应用中常见的需求,MyBatis Plus都有现成的解决方案等等......很多情况下这些我们用不着。

SQL掌控度

在复杂业务场景下,有时候真的需要写原生SQL:

// 复杂统计场景 @Select(""" SELECT dept_id, COUNT(*) as count, AVG(salary) as avg_salary FROM employee e LEFT JOIN department d ON e.dept_id = d.id WHERE e.status = 1 GROUP BY dept_id HAVING COUNT(*) > 10 """) List<DeptStats> getDeptStats();

仔细想想的话吧,其实没那么难

springboot使用mybatis plus总会涉及手写mapper,这么难用为啥还这么多人用?  第4张

MyBatis Plus已经帮我们做了很多:

// 增删改查都不用写了 public interface UserMapper extends BaseMapper<User> { } // 一行代码搞定复杂查询 userMapper.selectList( new QueryWrapper<User>() .gt("age", 18) .like("name", "张") .orderByDesc("create_time") );

什么时候用什么?很简单——看复杂度

简单CRUD:直接用BaseMapper

// 不用写任何SQL userMapper.insert(user); userMapper.deleteById(1L);

中等复杂度:用QueryWrapper

QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.select("id", "name", "age") // 指定字段 .gt("age", 18) .orderByDesc("create_time");

复杂查询:自定义SQL

@Select("你的复杂SQL") List<DTO> getComplexData();

MyBatis Plus之所以流行,不是因为它最好用,而是因为它最适合企业级Java应用的实际需求。

如果觉得对你有帮助,点个赞吧!我是旷野,探索无尽技术!

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

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

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

分享给朋友:

相关文章

创业:集思广益并完善您的商业理念

用史蒂夫乔布斯的话来说,“做伟大工作的唯一方法就是热爱你所做的事情。开始自己的事业是迈向自己喜欢的工作的一步。但是,从形成想法到创建商业网站,在您深入研究之前,需要考虑几个基本步骤和问题:您要解决什么问题?您的目标受众是谁?您的产品或服务与...

最让你震惊的网站有哪些?

压箱底的震惊来了,来波大的,一百个网站!这些都是我平时辛辛苦苦收集的,是真的牛逼,居然还有这种网站。1、实时地球网址:https://zoom.earth/实时图像每 10 分钟更新一次,提供风暴、天气预报、降水、火警等数据2、陕西博物馆...

无人机真的是中国领先吗?

无人机真的是中国领先吗?

巧了这是。捡到了一台大疆。应该是别人飞丢的。在草丛中泡过水,轴承锈死,电池鼓涨已,经没有维修价值了。但作为玩电子的,免不了要把它解剖,研究一番。那么,我们看看它的国产化率能有多少吧。图片说话:解释一下吧。图一,高通 美国图二,MPS: 美国...

有哪些是你用上了mac才知道的事?

用上了高端的Mac(已退货)才知道:原来文件夹里面的文件,你看到是8个,其实可能有12个。其中3个图标重叠在一起了,另外一个被拖动到屏幕外面了。用上了高端的Mac(已退货)才知道:原来鼠标灵敏度有问题是因为系统内置了鼠标加速度,只能用控制台...

如何做电商行业?

如何做电商行业?

“如何做电商*开网店”跟“如何找老婆”一样,没概况条件、没明确标准,就是扯犊子。我把话题具体一点说:具备“两三万”启动资金、掌握“选品+上架优化”基础技能,小则月入三五千、多则上万。跟摆地摊一样,有进货的钱、也不怕苦不怕累、稍微有点生意头脑...

抖音小店三个月了一单没出,也没有流量,一个星期好像都没有一个点击,怎么办?

抖音小店三个月了一单没出,也没有流量,一个星期好像都没有一个点击,怎么办?

好消息,你有毅力上200多个品,还能坚持三个月坏消息,一单没出我感觉你还是别碰抖店了,甚至电商平台都别碰 你没这个缘分我要是这样,我得用一百辆叉车叉死我自己你如果还想坚持,我直接给你这套至少价值19800学来的新思路简单来说就是 你做的好的...

发表评论

访客

看不清,换一张

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