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/591608/

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

(0)

大家都在看

  • CentOS服务器的网络配置与部署

    1.系统安装与软件安装 1.1选择CentOs7.9release版本用作所研发系统部署服务器,官网以及所选择镜像为地址为:http://ftp.sjtu.edu.cn/cento…

    数据库 2023年6月6日
    098
  • SQL Server2008 Order by在union子句不可直接使用的原因

    按照要求,每个取top 20,既然是随机的取,那么就SQL Server Order by newid()就是了,然后把所有数据union起来就得了。所以我立即给出了答案: sel…

    数据库 2023年6月14日
    076
  • 1291. 顺次数

    我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数。 请你返回由 [low, high] 范围内所有顺次数组成的 有序 列表(从小到大排序)。 示例 1: 输出:…

    数据库 2023年6月16日
    078
  • 6 short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1; 有错吗?

    第一个有错,因为s1是short类型,s1 + 1会自动转换为int类型,将int类型赋值给short类型的s1,属于高位类型转低位,需强制转换。 第二个正确,因为s1 += 1 …

    数据库 2023年6月6日
    076
  • 如何在MySQL中进行简单的增删改查

    — 创建dept表并设置主键create table dept(deptno int(2) primary key ,dname varchar(14),loc var…

    数据库 2023年6月16日
    0117
  • MySQL特性:ICP,Index Condition Pushdown

    ICP,Index Condition Pushdown 理解ICP特性前,先去前面理解MRR特性,了解where条件中的三阶段提取: index key、index filter…

    数据库 2023年6月16日
    083
  • 基于Vue的二进制时钟组件 — fx67llBinaryClock

    fx67llClock Easy & Good Clock ! npm 组件说明 一个基于Vue的二进制时钟组件,没什么卵用,做着好玩,可以方便您装饰个人主页 使用步骤 n…

    数据库 2023年6月11日
    088
  • MySQL——基础查询与条件查询

    基础查询 /* 语法: select 查询列表 from 表名; 类似于:System.out.println(打印东西); 1、查询列表可以是:表中的字段、常量值、表达式、函数 …

    数据库 2023年5月24日
    0118
  • Wireshark记录总结

    一. wireshark介绍说明:网络封包分析开源软件功能:截取网络封包,使用WinPCAP作为接口,直接与网卡进行数据报文交换 二、wireshark安装及使用【出处:jack_…

    数据库 2023年6月14日
    094
  • django中的auth模块与admin后台管理

    1. auth模块 在创建完django项目之后,执行数据库迁移之后,数据库里会增加很多新表,其中有一张名为auth_user的表,当访问django自带的路由admin的时候,需…

    数据库 2023年6月14日
    094
  • 事务的ACID特性

    技术是为了解决问题而生的,通过事务我们可以解决以下问题: 多个操作不是一个整体操作,出现了部分执行成功的情况,导致数据的状态不一致问题(原子性) 一组操作只有部分完成,没有全部完成…

    数据库 2023年6月11日
    098
  • Linux 服务管理

    Linux 服务管理 1. 基本介绍 服务的本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如mysqld,sshd,防火墙等,因此我们又称为守护线程…

    数据库 2023年6月6日
    0104
  • Word书签替换,加盖电子印章及转换PDF(Java实用版)

    一、前言 在项目中有需要对word进行操作的,可以看看哈,本次使用比较强大的spire组件来对word进行操作,免费版支持三页哦,对于不止三页的word文件,可以购买收费版,官网:…

    数据库 2023年6月16日
    093
  • form表单内容序列化的两种方法

    form表单内容序列化 form表单自带两种方法serialize()方法和serializeArray()方法 1.serialize()方法 描&…

    数据库 2023年6月14日
    089
  • Golang实现set

    Golang语言本身未实现set,但是实现了map golang的map是一种无序的键值对的集合,其中键是唯一的 而set是键的不重复的集合,因此可以用map来实现set 由于ma…

    数据库 2023年6月14日
    073
  • Servlet规范

    servlet规范 一。介绍1.它是javaee里面的一种规范。2.作用:1)在servlet规范中指定了动态资源文件的开发步骤2)在s…

    数据库 2023年6月11日
    057
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球