百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

Mybatis-Plus到底好不好用呢? mybatis_plus

yuyutoo 2024-10-12 00:02 9 浏览 0 评论

Mybatis-Plus作为一款开源免费的Mybatis增强工具,在Mybatis基础上做了很多的提升,简化的开发操作,提升了开发效率。

但是笔者认为,方便是很方便,但是侵入了Service层不好维护,最终导致代码可读性太差,耦合性太高,不利于封装,有些时候还不如SQL来的优雅。

优点

操作相对简单

使用过Mybatis-Plus都知道,它提供了可以从代码中操作增删改查的方式,编码相对简单。相比较于Mybatis通过Mapper文件去映射一个XML的文件然后编写SQL语句的操作来讲实现相对简单。但是比较麻烦的就是会出现大量的代码,并且个人感觉这些代码会影响可读性。

内置主键生成

Mybatis-Plus中提供了四种的主键生成策略。并且也做了相应的优化,使用起来相对方便。不需要开发者进行多余的处理。但是在分布式系统中的使用就会出现短板。

代码生成器

提供的代码生成器确实节省了很多不必要的代码编写时间。

缺点

个人感觉除了操作简单之外,整个的Mybatis-Plus都是使用缺点。除了上面提到的可维护性和代码可读性较差等问题之外。在使用的过程中还会出现如下的一些问题。

查询问题

在Mybatis-Plus中提供了查询操作的简单方法,但是这个select的操作有点类似于select * from table 的操作。也就是说如果需要去指定一些字段的时候,虽然支持这样的指定,但整体的使用效果并不是太好。

有时候,前端需要返回一些Vo对象,这个对象需要经过封装。而Mybatis-Plus并没有提供对应的封装需要返回Vo对象的时候就需要遍历已有的结果,或者是通过属性拷贝的方式进行,如果属性名称或者是查询的结果较多的时候,就有可能会影响到性能。

复杂语句

在很多的业务操作中,需要多个表联查,虽然在Mybatis-Plus中提供了这方面的支持,但是对于一些更为复杂的查询还是需要通过编写SQL语句的方式来实现,就会造成在ORM中的混乱,一部分是使用了Mybatis-Plus的支持,一部分使用XML映射。

并且在处理稍微复杂的操作的时候,还会出现语句报错,语句不匹配的情况,然后就需要耗费大量的时间去解决这些问题。可谓是吃力不讨好。

对于分页操作

在Mybatis-Plus中提供了分页的相关操作,并且其分页的灵活性较差,再加上在有些情况下需要进行条件查询之后分页,最终导致前端得到的数据会是一个很复杂的数据结构。当然分页操作并不是全是问题,如果是能够接受还是可以使用的。

总结

相比较与Mybatis的原生方式,后来的很多扩展框架都是为了提升操作的便捷性,但是对于复杂业务来讲,笔者建议还是使用最为基础的方式来开发。虽然这些框架屏蔽了很多的复杂的SQL的编写,但是这种框架使用太多的话并不会对自己的开发能力有所提升。所以笔者不推荐初学者使用。

相关推荐

ETCD 故障恢复(etc常见故障)

概述Kubernetes集群外部ETCD节点故障,导致kube-apiserver无法启动。...

在Ubuntu 16.04 LTS服务器上安装FreeRADIUS和Daloradius的方法

FreeRADIUS为AAARadiusLinux下开源解决方案,DaloRadius为图形化web管理工具。...

如何排查服务器被黑客入侵的迹象(黑客 抓取服务器数据)

---排查服务器是否被黑客入侵需要系统性地检查多个关键点,以下是一份详细的排查指南,包含具体命令、工具和应对策略:---###**一、快速初步检查**####1.**检查异常登录记录**...

使用 Fail Ban 日志分析 SSH 攻击行为

通过分析`fail2ban`日志可以识别和应对SSH暴力破解等攻击行为。以下是详细的操作流程和关键分析方法:---###**一、Fail2ban日志位置**Fail2ban的日志路径因系统配置...

《5 个实用技巧,提升你的服务器安全性,避免被黑客盯上!》

服务器的安全性至关重要,特别是在如今网络攻击频繁的情况下。如果你的服务器存在漏洞,黑客可能会利用这些漏洞进行攻击,甚至窃取数据。今天我们就来聊聊5个实用技巧,帮助你提升服务器的安全性,让你的系统更...

聊聊Spring AI Alibaba的YuQueDocumentReader

序本文主要研究一下SpringAIAlibaba的YuQueDocumentReaderYuQueDocumentReader...

Mac Docker环境,利用Canal实现MySQL同步ES

Canal的使用使用docker环境安装mysql、canal、elasticsearch,基于binlog利用canal实现mysql的数据同步到elasticsearch中,并在springboo...

RustDesk:开源远程控制工具的技术架构与全场景部署实战

一、开源远程控制领域的革新者1.1行业痛点与解决方案...

长安汽车一代CS75Plus2020款安装高德地图7.5

不用破解原车机,一代CS75Plus2020款,安装车机版高德地图7.5,有红绿灯读秒!废话不多讲,安装步骤如下:一、在拨号状态输入:在电话拨号界面,输入:*#518200#*(进入安卓设置界面,...

Zookeeper使用详解之常见操作篇(zookeeper ui)

一、Zookeeper的数据结构对于ZooKeeper而言,其存储结构类似于文件系统,也是一个树形目录服务,并通过Key-Value键值对的形式进行数据存储。其中,Key由斜线间隔的路径元素构成。对...

zk源码—4.会话的实现原理一(会话层的基本功能是什么)

大纲1.创建会话...

Zookeeper 可观测性最佳实践(zookeeper能够确保)

Zookeeper介绍ZooKeeper是一个开源的分布式协调服务,用于管理和协调分布式系统中的节点。它提供了一种高效、可靠的方式来解决分布式系统中的常见问题,如数据同步、配置管理、命名服务和集群...

服务器密码错误被锁定怎么解决(服务器密码错几次锁)

#服务器密码错误被锁定解决方案当服务器因多次密码错误导致账户被锁定时,可以按照以下步骤进行排查和解决:##一、确认锁定状态###1.检查账户锁定状态(Linux)```bash#查看账户锁定...

zk基础—4.zk实现分布式功能(分布式zk的使用)

大纲1.zk实现数据发布订阅...

《死神魂魄觉醒》卡死问题终极解决方案:从原理到实战的深度解析

在《死神魂魄觉醒》的斩魄刀交锋中,游戏卡死犹如突现的虚圈屏障,阻断玩家与尸魂界的连接。本文将从技术架构、解决方案、预防策略三个维度,深度剖析卡死问题的成因与应对之策,助力玩家突破次元壁障,畅享灵魂共鸣...

取消回复欢迎 发表评论: