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

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

yuyutoo 2024-10-12 00:02 3 浏览 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的编写,但是这种框架使用太多的话并不会对自己的开发能力有所提升。所以笔者不推荐初学者使用。

相关推荐

jQuery VS AngularJS 你更钟爱哪个?

在这一次的Web开发教程中,我会尽力解答有关于jQuery和AngularJS的两个非常常见的问题,即jQuery和AngularJS之间的区别是什么?也就是说jQueryVSAngularJS?...

Jquery实时校验,指定长度的「负小数」,小数位未满末尾补0

在可以输入【负小数】的输入框获取到焦点时,移除千位分隔符,在输入数据时,实时校验输入内容是否正确,失去焦点后,添加千位分隔符格式化数字。同时小数位未满时末尾补0。HTML代码...

如何在pbootCMS前台调用自定义表单?pbootCMS自定义调用代码示例

要在pbootCMS前台调用自定义表单,您需要在后台创建表单并为其添加字段,然后在前台模板文件中添加相关代码,如提交按钮和表单验证代码。您还可以自定义表单数据的存储位置、添加文件上传字段、日期选择器、...

编程技巧:Jquery实时验证,指定长度的「负小数」

为了保障【负小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【负小数】的方法。HTML代码<inputtype="text"class="forc...

一篇文章带你用jquery mobile设计颜色拾取器

【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...

编程技巧:Jquery实时验证,指定长度的「正小数」

为了保障【正小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【正小数】的方法。HTML做成方法<inputtype="text"class="fo...

jquery.validate检查数组全部验证

问题:html中有多个name[],每个参数都要进行验证是否为空,这个时候直接用required:true话,不能全部验证,只要这个数组中有一个有值就可以通过的。解决方法使用addmethod...

Vue进阶(幺叁肆):npm查看包版本信息

第一种方式npmviewjqueryversions这种方式可以查看npm服务器上所有的...

layui中使用lay-verify进行条件校验

一、layui的校验很简单,主要有以下步骤:1.在form表单内加上class="layui-form"2.在提交按钮上加上lay-submit3.在想要校验的标签,加上lay-...

jQuery是什么?如何使用? jquery是什么功能组件

jQuery于2006年1月由JohnResig在BarCampNYC首次发布。它目前由TimmyWilson领导,并由一组开发人员维护。jQuery是一个JavaScript库,它简化了客户...

django框架的表单form的理解和用法-9

表单呈现...

jquery对上传文件的检测判断 jquery实现文件上传

总体思路:在前端使用jquery对上传文件做部分初步的判断,验证通过的文件利用ajaxFileUpload上传到服务器端,并将文件的存储路径保存到数据库。<asp:FileUploadI...

Nodejs之MEAN栈开发(四)-- form验证及图片上传

这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能。开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R...

大数据开发基础之JAVA jquery 大数据java实战

上一篇我们讲解了JAVAscript的基础知识、特点及基本语法以及组成及基本用途,本期就给大家带来了JAVAweb的第二个知识点jquery,大数据开发基础之JAVAjquery,这是本篇文章的主要...

推荐四个开源的jQuery可视化表单设计器

jquery开源在线表单拖拉设计器formBuilder(推荐)jQueryformBuilder是一个开源的WEB在线html表单设计器,开发人员可以通过拖拉实现一个可视化的表单。支持表单常用控件...

取消回复欢迎 发表评论: