mybatisplus不支持sum,但支持这个

我们知道,要对数据求和,写sql很简单:select sum(exp) from table_name
我们在用mybatisplus做求和计算的时候,mybatisplus的Wrapper不支持sum函数。事实上,mybatisplus只有 求count 的api,至于其他聚合函数,例如sum、max、min、avg等,都是不支持的。
这种情况下,我们就无法使用lambda表达式了,只能以字符串的形式写”sum(xxx)”, look below:

再一种情况,我们对数据做分组查询,sql语句通常是:select col1,col2,sum(exp) from table_name group by col1,col2
同样,在程序里用mybatisplus也是无法用lambda实现,只能拼接sql。like this:

是不是很不爽?而且,这种字符串的形式存在隐患,当字段名发生变化,一旦这里漏改,就会出现bug。如果用lambda表达式就没这个困扰了,利用IDEA重命名属性,这里会同时变更的。 ∴,能用lambda就用lambda吧。本着这个原则,于是乎,就有了下面的代码,只是把没办法的sum放到字符串里,其他字段仍然用lambda,尽力了~~

Original: https://www.cnblogs.com/buguge/p/16739740.html
Author: buguge
Title: mybatisplus不支持sum,但支持这个

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/684498/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Python之NMAP详解

    NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些…

    技术杂谈 2023年7月11日
    0119
  • CentOS7.6安装MySQL-5.7.31(RPM方式安装)

    准备工作: 注:5.7.31版本安装步骤及初始化和之前版本有较大区别 CentOS 7.6 系统: 带GUI的服务器 默认安装 MySQL 5.7.31 安装包: 1.RPM安装包…

    技术杂谈 2023年7月24日
    063
  • k8s (kubenetes)集成runner

    k8s (kubenetes)集成runner unregisterRunners:true—这个很重要,记得设置true,否则容易出现多个没用的runner&#821…

    技术杂谈 2023年6月1日
    094
  • 关于Oracle多租户架构下的每个PDB的dbtime查询

    有客户咨询在19c多租户这样的架构中,除了查询cdb本身外,还想查询具体pdb的负载(DB Time),但是使用之前的脚本发现查询不到,只显示cdb自己的结果,客户写的脚本如下: …

    技术杂谈 2023年5月31日
    068
  • SpringMVC实战入门教程,四天带你快速搞定springmvc框架

    SpringMVC 也叫Spring web mvc。是Spring 框架的一部分,是在Spring3.0 后发布的。 这里对SpringMVC框架进行一个简单的介绍: sprin…

    技术杂谈 2023年7月25日
    088
  • 30道关于linux的基础命令小题,先练练手

    1.修改主机名为yuanlai0224命令是: 2.切换⽬录到/yuchao01/data/,再创建脚本/my_website/scripts/start.sh。 绝对路径、相对路…

    技术杂谈 2023年7月10日
    074
  • webstorm中js文件被识别成txt类型

    问题描述: webstorm中index.js文件被识别成txt格式,如下图。 原因: webstorm中js文件被识别成txt文件,原因在于txt类型识别了以当前js文件名命名的…

    技术杂谈 2023年5月31日
    088
  • 8086汇编 栈操作

    8086汇编 栈操作 栈结构 一、说明 栈是一种只能在一端进行插入或删除操作的数据结构。 栈有两个基本的操作:入栈和出栈。 入栈:将一个新的元素放到栈顶; 出栈:从栈顶取出一个元素…

    技术杂谈 2023年6月1日
    076
  • 浅谈分布式事务

    前言应用场景 事务必须满足传统事务的特性,即原子性,一致性,分离性和持久性。但是分布式事务处理过程中, 某些场地比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商…

    技术杂谈 2023年5月31日
    071
  • 保姆教程系列三、Nacos Config-服务配置

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 上篇我们介绍到 保姆教程系列二、Nacos实现注册中心 配置中心原理 一、 服务配置中心介绍 首先我们来看一下,微…

    技术杂谈 2023年7月11日
    0101
  • linux free命令available小于free值

    问题:前段时间在做服务器巡检时发现系统可用内存值小于空闲内存值 分析:查询网上各种资料,都说的是 available=free + buff/cache 这样一个大致计算方式,按这…

    技术杂谈 2023年7月11日
    078
  • FeignClient中name和url属性的作用

    定义: feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service。Spring Cloud集成了Ribbon和…

    技术杂谈 2023年5月30日
    0105
  • WebDriver中的元素状态检测表

    方法作用 isEnabled() 检测元素是否启用 isSelected() 检测元素是否被选中 isDisplayed() 检测元素是否可见 Original: https://…

    技术杂谈 2023年5月31日
    077
  • Python列表和元组知识点

    list.pop()方法:默认删除列表中最后一个元素,也可按照索引位置删除指定元素,并将删除的元素返回。 li = [23, 4, ‘ab’, True] print(li.pop…

    技术杂谈 2023年6月21日
    084
  • jQuery 3.0 的 setter/getter 模式

    jQuery 的 setter/getter 共用一个函数,通过是否传参来表明它是何种意义。简单说传参它是 setter,不传它是 getter。 一个函数具有多种意义在编程语言中…

    技术杂谈 2023年6月1日
    085
  • 快读,快输

    快读 #define gc getchar inline ll read(){ ll a=0;int f=0;char p=gc(); while(!isdigit(p)){f|=…

    技术杂谈 2023年7月11日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球