mybatis如何返回某列的最大值

 更新时间:2021年07月22日 09:45:22   作者:、唐城  
这篇文章主要介绍了mybatis如何返回某列的最大值操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mybatis返回某列的最大值

Mapper文件中sql:

<select id="queryMaxId" resultType="Integer"> 
select Max(id) as id from table
<select>

resultType:以数据库对应ID属性自定义

SQL

select * from table  where id=(select MAX(id) from table ) 

mybatis返回最大值max,最小值min,vag,count函数和其他字段等对应接口返回值的处理方式

我们在xml文件写sql同时进行数据库查询max,min,sum,avg,count函数或其他字段,不清楚返回值怎么获取,看下去,你不会后悔O(∩_∩)O

面对这些求最大值,最小值,平均值或者夹杂着其他字段等,单个出现就正常返回Integer或者Long或着String就可以

如果同时出现很多个,那最简单的方法就是封装一个实体对象

案例:

/**
 * 封装的实体对象,属性对应你的查询结果字段,根据自己的情况添加
 */
@Data
public class MaxAndMinVA implements Serializable {
    private static final long serialVersionUID = 1L; 
    private String address; 
    private Double maxVoltage; 
    private Double maxElectricity; 
    private Double minVoltage; 
    private Double minElectricity;
}

在mysql中,很简单,直接正常写sql就可以

举例:

select device.address,max(va.voltage),max(va.electricity),min(va.voltage),min(va.electricity) from device left join va on device.id=va.device_id GROUP BY va.device_id

在xml文件中,需要注意:每个计算的最大值,最小值需要起别名(这个别名必须对应你的实体表属性名,不然查询出来的是null),数据库中的字段不用起别名,例如address,起别名只针对求最大值,平均值等

举例:

<select id="va" resultType="com.cn.VO.MaxAndMinVA"> 
 select device.address,max(va.voltage) as maxVoltage,max(va.electricity) as maxElectricity,min(va.voltage) as minVoltage,min(va.electricity) as minElectricity from device left join va on device.id=va.device_id GROUP BY va.device_id
</select>

mapper接口:(我查询的是一堆结果对象,如果你查询一个,也可以传参数,自己看着改吧)

List<MaxAndMinVA> va();

这时就正常测试就可以看到结果了

重点提醒:xml文件中sql起别名as一定要对应实体类属性名,不然会查询出null(不信你可以试一下)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Java多线程与并发

    详解Java多线程与并发

    多线程是一个进程在执行过程中产生多个更小的程序单元,这些更小的单元称为线程,这些线程可以同时存在,同时运行,一个进程可能包含多个同时执行的线程。多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发的一个基本单位。
    2021-06-06
  • 详解如何在spring中创建全局异常处理器

    详解如何在spring中创建全局异常处理器

    全局异常处理器在实际项目开发中是一个很重要的工具,对保证代码的正常运行有很重要的作用,所以下面来讲一下如何在spring中创建一个全局异常处理器,感兴趣的的朋友可以参考下
    2023-12-12
  • Spring启动过程源码分析及简介

    Spring启动过程源码分析及简介

    本文是通过AnnotationConfigApplicationContext读取配置类来一步一步去了解Spring的启动过程。本文重点给大家介绍Spring启动过程源码分析及基本概念,感兴趣的朋友一起看看吧
    2021-10-10
  • Junit测试多线程无法得到结果的问题解决

    Junit测试多线程无法得到结果的问题解决

    在测试一个文件转换工具类的时候,发生一个有趣的现象,同样的输入,使用Main函数可以正确解析,得到结果,使用Junit却无法得到结果,神奇的是,即使捕获Throwable,也无法捕获到仍和异常。
    2021-05-05
  • JavaWeb中的组件Filter过滤器解析

    JavaWeb中的组件Filter过滤器解析

    这篇文章主要介绍了JavaWeb中的组件Filter过滤器解析,Filter过滤器是一种用于处理和转换数据的工具,常用于Web开发中,它可以在请求到达服务器之前或响应返回给客户端之前对数据进行预处理或后处理,需要的朋友可以参考下
    2023-10-10
  • Spring Bean配置方式总结

    Spring Bean配置方式总结

    定义Spring Bcan的3种方式分别是:基于XML 的方式配置、基于注解扫播方式配置、基于元数据类的配置,本文就通过代码示例给大家详细讲讲这三种配置方式,需要的朋友可以参考下
    2023-12-12
  • (starters)springboot-starter整合阿里云datahub方式

    (starters)springboot-starter整合阿里云datahub方式

    这篇文章主要介绍了(starters)springboot-starter整合阿里云datahub方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Java并发之嵌套管程锁死详解

    Java并发之嵌套管程锁死详解

    这篇文章主要介绍了Java并发之嵌套管程锁死详解,涉及嵌套管程锁死的发生,实例等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Spring boot项目使用thymeleaf模板过程详解

    Spring boot项目使用thymeleaf模板过程详解

    这篇文章主要介绍了Spring boot项目使用thymeleaf模板过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java的MyBatis框架中MyBatis Generator代码生成器的用法

    Java的MyBatis框架中MyBatis Generator代码生成器的用法

    这篇文章主要介绍了Java的MyBatis框架中Mybatis Generator代码生成器的用法,Mybatis Generator主要被用来生成繁琐的配置文件来提高效率,需要的朋友可以参考下
    2016-04-04

最新评论