为什么不建议你使用Mybatis-plus

2023-05-16

MP是一个很响亮的名字,毕竟在Mybatis后面加了一个plus,就好像Iphone机型后面加了plus就感觉更牛一样。但是我要告诉你,Mybatis-plus的特性只会让你的代码更烂。Mybatis-plus的神奇之处在于,它能让你的代码看起来整洁并且在开发阶段降低SQL报错的概率,但同时降低代码复用性和层次结构的清晰度,大幅增加代码修改维护成本。

代码整洁本身是为了降低修改成本的,MP本末倒置。
整洁的代码意味着阅读代码的时间成本降低,但是如果使用MP,在你阅读service层代码时,还会看到在代码中拼装SQL执行条件的部分。这样一来,service层代码和数据库访问层代码混淆在一起,让程序员很难专注的关心某一细节。常见的SQL操作MP可以通过Wrapper构造SQL执行条件,程序员就看不到一条条SQL语句,而阅读和检查SQL逻辑是比较耗费精力的事,MP只不过是以后期维护成本为代价换取开发时貌似整洁的优势。

SQL执行错误是最容易修改的错误
如果你使用纯Mybatis相比MP会更容易爆出SQL执行错误。其实大可不必太在乎这个问题,如果是SQL执行逻辑有问题,那不管MP还是Mybatis都会报错。如果是SQL语法错误,由于SQL语法错误在Java开发中错误日志非常显眼,所以你可以通过复制日志中报错的SQL然后代码全局搜索快速定位出错位置,而且SQL语法错误基本都是字段名写错或者执行条件顺序错误,这都是非常容易修改的BUG。

纯Mybatis具有更好的代码复用性
比如,我要查询班级id为7,的所有班干部同学。你在纯Mybatis中会一次性将SQL写进XML文件中,如果在项目中这条SQL需要调用N次,你只需要在这N个地方都传参调用即可。但如果用了MP,你需要将相同的代码复制N次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么不建议你使用Mybatis-plus 的相关文章

随机推荐

  • iOS 之UIImageView实现图片的移动和缩放

    因为种种原因 xff0c 需要在iphone应用中实现图片查看功能 xff0c 由于iphone屏幕支持多点触摸 xff0c 于是是想到用 手势 来实现图片的实时缩放和移动 借鉴无所不在的internet网络资料之后 xff0c 终于实现此
  • ASCII-Generator.site在线生成ASCII艺术字符图

    什么是 ASCII Generator site ASCII Generator site 是一个 Django 网站 xff0c 用于从图像或文本中生成 ASCII 艺术字符图 x1f3a8 什么是 Django xff1f Django
  • 使Apache服务器URL支持中文

    文章地址https blog csdn net wc250025 article details 110822265 基本法 想要Apache的URL中支持中文 xff0c 需要安装mod encoding模块 网上大部分文章都是在用老的版
  • W: GPG 错误:http://ppa.launchpad.net lucid Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY FAF69C646FF368B7的问题

    在安装更新时 xff0c 即在运行 xff0c 命令行sudo apt get update 或者运行更新管理器的时候 xff0c 出现W GPG 错误 xff1a http ppa launchpad net lucid Release
  • WEEK8 周记 作业——kosaraju模拟&DFS序_班长竞选

    WEEK8 周记 作业 kosaraju模拟 amp DFS序 班长竞选 一 题意 1 简述 大学班级选班长 xff0c N 个同学均可以发表意见 若意见为 A B 则表示 A 认为 B 合适 xff0c 意见具有传递性 xff0c 即 A
  • WEEK11 周记 作业——DP0-1背包问题_东东开车了

    一 题意 1 简述 东东开车出去泡妞 在梦中 xff0c 车内提供了 n 张CD唱片 xff0c 已知东东开车的时间是 n 分钟 xff0c 他该如何去选择唱片去消磨这无聊的时间呢 假设 CD数量不超过20张 没有一张CD唱片超过 N 分钟
  • c语言结构体嵌套的对齐方式

    1 xff1a 在代码中有结构体嵌套的方式 xff0c 又需要获取每个变量的地址 那么需要了解结构体嵌套和单一结构体的一些对齐方面的规则 2 xff1a 对于嵌入式的设备来说 xff0c 对齐很重要 xff0c 有些cpu不支持不对齐的访问
  • Cloudreve自建云盘实站:容量和速度自己来决定

    一 前言 为啥要用自建网盘 xff0c 市面上的云盘不香了 xff1f 每一个用户需求的背后都是因为有场景存在 xff0c 而这些差异化的场景也都是因为不同的用户类型产生的 就像我作为技术号主想分享一些自己总结的资料 xff0c 放到一些云
  • Ubuntu安装CUDA cuDNN TensorRT

    CUDA cuDNN TensorRT安装 0 前言 CUDA xff1a 用于 GPU 的一组驱动程序 xff0c 它让 GPU 能够运行底层编程语言来进行并行计算 cuDNN xff1a 用于深度学习的高度优化的原语库 使用 cuDNN
  • 单片机学习笔记7--SysTick定时器(基于百问网STM32F103系列教程)

    第六章 SysTick定时器 SysTick定时器 又名系统滴答定时器 是存在于Cortex M3的一个定时器 24位 xff0c 只能递减 xff0c 嵌套在NVIC中 xff0c 所有的Cortex M内核的单片机都具有这个定时器 只要
  • 如何将自己的Python代码打包发布到pypi上

    什么是pypi 简单的说pypi是一个python包的仓库 xff0c 里面有很多别人写好的python库 xff0c 你可以通过easy install 或者pip进行安装 方便用户更方面的使用你的代码模块 将代码打包并上传到pypi上
  • c++11新特性:变长参数模板详解

    这里写目录标题 C 43 43 11 变长参数模板变长函数参数包如何解参数包sizeof 获得函数参数个数递归模板函数变参模板展开 结论 C 43 43 11 变长参数模板 在C 43 43 11之前 xff0c 无论是类模板 还是函数模板
  • 安装Nvidia驱动run文件

    本文系转载 xff0c 出处 xff1a https blog csdn net lhx 998 article details 76135936 下载指定NVIDIA驱动安装包 xff08 run格式 xff09 run格式文件安装有时比
  • 学习问题记录:centos虚拟机启动到登录界面黑屏

    一 问题描述 centos虚拟机前面启动正常 xff0c 但到了登录界面一直黑屏 二 原因 可能是在 etc profile 修改环境变量时没加 PATH xff0c 导致重启时 etc profile 生效 xff0c 虚拟机原有路径被替
  • 解决 Python paramiko 安装失败的问题

    我昨天试了一下午总算是安装成功了 xff0c 这个模块安装难度主要在于依赖包没有最新版的whl文件可以用 xff0c 而pip下载依赖的时候 xff0c 就会找最新版 xff0c 没有最新版就下载源码自己编译 xff0c 结果就是报错 提示
  • Java如何从字符串中提取数字

    在使用java编程处理字符串时 xff0c 常常需要获取字符串中的数字 xff0c 来进行进一步的计算 接下来介绍几种从字符串中提取数字的方法 1 正则表达式 这里正则表达式表示匹配除数字以外的字符 xff0c 然后replaceAll方法
  • Java生成MD5的两种方式

    1 原生的 package com pibigstar common utils import java security MessageDigest MD5加密工具类 64 author pibigstar public class My
  • linux下如何完全删除用户

    转载 xff1a http blog 51cto com wutengfei 1923446 1 首先进入系统创建一个用户 root 64 localhost useradd haha 创建用户 haha是用户名 root 64 local
  • mysql中的distinct的用法

    distinct的作用 在mysql中 xff0c distinct关键字的主要作用就是对数据库表中一个或者多个字段重复的数据进行过滤 xff0c 只返回其中的一条数据给用户 xff0c distinct只可以在select中使用 dist
  • 为什么不建议你使用Mybatis-plus

    MP是一个很响亮的名字 xff0c 毕竟在Mybatis后面加了一个plus xff0c 就好像Iphone机型后面加了plus就感觉更牛一样 但是我要告诉你 xff0c Mybatis plus的特性只会让你的代码更烂 Mybatis p