Mybatis-Plus sum聚合函数及按日期查询并求和的方式详解

 更新时间:2023年06月01日 16:46:04   作者:m0_55070913  
这篇文章主要介绍了Mybatis-Plus sum聚合函数及按日期查询并求和,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一.Mybatis-Plus——sum聚合函数

 //总收益
 		Order order =new Order();
        QueryWrapper<Order> queryWrapper = new QueryWrapper<Order>();
        queryWrapper.select("sum(price) as sumAll");     
        Order ord= orderService.getOne(queryWrapper);
        //注意,空指针问题
         if (ord== null){
            order.setSumAll(Double.valueOf(0)) ;
        }else{
			 order.setSumAll(ord.getSumAll());
        }

对应的sql语句是

SELECT sum(price) as sumAll FROM t_order

注意:as后面的变量要与实体类中声明的一致, @TableField(exist = false)表示表中并没有相应的字段与之对应。
(queryWrapper的getOne()方法:根据 Wrapper,查询一条记录)

/**
     * 总收益
     */
    @TableField(exist = false)
    private Double sumAll;

二.按日期查询并求和(mybatis及mybatisPlus两种方式)

举例: 今日总收益

1.mybatisPlus,只需在controller层进行代码书写

//今日总收益
   QueryWrapper<Order> queryWrapper = new QueryWrapper<Order>();
   queryWrapper.select("sum(price) as sumByToday ");
   queryWrapper.eq("TO_DAYS(create_time)","TO_DAYS(NOW())");
   Order order =new Order();
   if (orderService.getOne(queryWrapper) == null){
            order.setSumByToday(Double.valueOf(0)) ;
   }else{
            order.setSumByToday(orderService.getOne(queryWrapper).getSumByToday());
   }

2.mybatis (自己定义sql,简单灵活,但代码量相较于mybatisPlus多了几行)

controller层

  //今日总收益
        Double sumByToday =orderService.sumByToday();
        if (sumByToday == null){
            sumByToday = Double.valueOf(0);
        }
        order.setSumByToday(sumByToday);

service层

Double sumByToday();

service实现层

 @Override
    public Double sumByToday(){
        return orderMapper.sumByToday();
    }

mapper层

 Double sumByToday();

xml文件

 <select id="sumByToday"  resultType="java.lang.Double">
    select sum(price) as sumByToday  from t_order
     where TO_DAYS(create_time) = TO_DAYS(NOW())
    </select>

3.bug记录,错误信息如下:

Mapper method 'mapper.OrderMapper.sumByToday attempted to return null from a method with a primitive return type (double).
查询出来的值为空,它的数据为null而不是double数据。

解决方法:
方法1:实体类中用来接收“今日总收益“的变量,类型变成封装类Double(Integer、Long,而不是double。
方法2:xml文件中的sql语句变成

select IFNULL(sum(price),0) as sumByToday 
from t_order
where TO_DAYS(create_time) = TO_DAYS(NOW())

IFNULL(expression, value):如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。

到此这篇关于Mybatis-Plus sum聚合函数及按日期查询并求和的文章就介绍到这了,更多相关Mybatis-Plus sum聚合函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解SpringBoot禁用Swagger的三种方式

    详解SpringBoot禁用Swagger的三种方式

    在生产环境下,我们需要关闭swagger配置,避免暴露接口的这种危险行为。本文就详细的介绍了3种情况,感兴趣的可以了解一下
    2021-11-11
  • mybatis单元测试过程(无需启动容器)

    mybatis单元测试过程(无需启动容器)

    在MyBatis中,单元测试无需启动容器即可进行,主要涉及Configuration类、Executor接口及其实现类,以及XMLMapperBuilder的作用,Configuration类是配置的承载者,负责初始化并解析配置文件,Executor接口及其实现类
    2024-09-09
  • Java大文件上传详解及实例代码

    Java大文件上传详解及实例代码

    这篇文章主要介绍了Java大文件上传详解及实例代码的相关资料,需要的朋友可以参考下
    2017-02-02
  • Spring使用注解和配置文件配置事务

    Spring使用注解和配置文件配置事务

    这篇文章主要为大家详细介绍了Spring使用注解和配置文件配置事务,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • java spring mvc处理器映射器介绍

    java spring mvc处理器映射器介绍

    这篇文章主要介绍了java spring mvc处理器映射器,文章围绕equestMapping解析映射介绍展开源码内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-03-03
  • Maven jar包冲突的解决方案

    Maven jar包冲突的解决方案

    这篇文章主要介绍了Maven jar包冲突的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 基于spring+springmvc+hibernate 整合深入剖析

    基于spring+springmvc+hibernate 整合深入剖析

    这篇文章主要介绍了于spring+springmvc+hibernate整合实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 一文详解Spring是怎样处理循环依赖的

    一文详解Spring是怎样处理循环依赖的

    循环依赖简单理解就是A,B 两个bean相互依赖,A依赖B,B依赖A,A->B、B->A大概就是这样,这篇文章主要介绍了Spring是怎样处理循环依赖的,文中通过代码示例给大家介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-01-01
  • Spring使用Setter完成依赖注入方式

    Spring使用Setter完成依赖注入方式

    这篇文章主要介绍了Spring使用Setter完成依赖注入方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java中利用Alibaba开源技术EasyExcel来操作Excel表的示例代码

    Java中利用Alibaba开源技术EasyExcel来操作Excel表的示例代码

    这篇文章主要介绍了Java中利用Alibaba开源技术EasyExcel来操作Excel表的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论