Java Fluent Mybatis聚合查询与apply方法流程的示例分析
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,这篇文章将为大家详细讲解有关Java Fluent Mybatis聚合查询与apply方法流程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据准备为了聚
千家信息网最后更新 2024年12月13日Java Fluent Mybatis聚合查询与apply方法流程的示例分析
这篇文章将为大家详细讲解有关Java Fluent Mybatis聚合查询与apply方法流程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
数据准备
为了聚合查询的条件,添加了几条数据。
MIN
我们试着获取最小的年龄。
方法实现
@Override public Integer getAgeMin() { Mapresult = testFluentMybatisMapper .findOneMap(new TestFluentMybatisQuery().select.min.age("minAge").end()) .orElse(null); return result != null ? Convert.toInt(result.get("minAge"), 0) : 0; }
控制层代码
@ApiOperation(value = "获取最小年龄", notes = "获取最小年龄") @RequestMapping(value = "/getAgeMin", method = RequestMethod.GET) @ResponseBody public ResultgetAgeMin() { try { return Result.ok(aggregateService.getAgeMin()); } catch (Exception exception) { return Result.error(ErrorCode.BASE_ERROR_CODE.getCode(), exception.getMessage(), null); } }
调试代码
代码说明:
1、age("minAge")为什么要加一个字符串进去呢?不加可以吗?答案是可以,不过你看到的结果返回时这样的。
没错,括号内的是聚合查询结果别名,不传的话结果比较尴尬,建议还是传一下。
MAX
在做max聚合函数的时候,我来搞复杂一点,加上group by。
定义返回实体。
import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructor; /** @Author huyi @Date 2021/10/26 14:15 @Description: 聚合最大年龄返回体 */@Data@AllArgsConstructor@NoArgsConstructor@Builderpublic class AggregateMaxAgeRsp { private String name; private Integer maxAge;}
方法实现
@Override public ListgetAgeMaxByName() { List
控制层代码
@ApiOperation(value = "根据年龄分组并获取最大年龄", notes = "根据年龄分组并获取最大年龄") @RequestMapping(value = "/getAgeMaxByName", method = RequestMethod.GET) @ResponseBody public Result> getAgeMaxByName() { try { return Result.ok(aggregateService.getAgeMaxByName()); } catch (Exception exception) { return Result.error(ErrorCode.BASE_ERROR_CODE.getCode(), exception.getMessage(), null); } }
调试代码
OK,没什么问题。
代码说明:
1、使用了Hutools工具BeanUtil将map的值填充到实体对象中。
SUM、AVG、COUNT
sum、avg、count加一起试试吧。
定义返回体
import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructor; /** @Author huyi @Date 2021/10/26 14:50 @Description: 聚合平均总和返回体 */@Data@AllArgsConstructor@NoArgsConstructor@Builderpublic class AggregateAgeSumAvgAndCountRsp { private String name; private Integer sum; private Integer avg; private Integer count;}
方法实现
@Override public ListgetAgeSumAvgCountByName() { List
控制层代码
@ApiOperation(value = "根据年龄分组并获取年龄和、平均年龄、数量", notes = "根据年龄分组并获取年龄和、平均年龄、数量") @RequestMapping(value = "/getAgeSumAvgCountByName", method = RequestMethod.GET) @ResponseBody public Result> getAgeSumAvgCountByName() { try { return Result.ok(aggregateService.getAgeSumAvgCountByName()); } catch (Exception exception) { return Result.error(ErrorCode.BASE_ERROR_CODE.getCode(), exception.getMessage(), null); } }
调试代码
OK,完美。
apply方法使用
官方提供了显示自由指定字段.apply语法功能。我们测试一下好不好用。
返回体定义
import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructor; import java.util.Date; /** @Author huyi @Date 2021/10/26 15:10 @Description: 聚合应用返回体 */@Data@AllArgsConstructor@NoArgsConstructor@Builderpublic class AggregateApplyRsp { private String name; private Date createTime; private Integer minAge; private Date maxTime;}
方法实现
@Override public ListgetApply() { List
控制层代码
@ApiOperation(value = "根据名字获取最小年龄,使用语句", notes = "根据名字获取最小年龄,使用语句") @RequestMapping(value = "/getApply", method = RequestMethod.GET) @ResponseBody public Result> getApply() { try { return Result.ok(aggregateService.getApply()); } catch (Exception exception) { return Result.error(ErrorCode.BASE_ERROR_CODE.getCode(), exception.getMessage(), null); } }
调试代码
OK,完美。
关于"Java Fluent Mybatis聚合查询与apply方法流程的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
年龄
代码
方法
最小
查询
分组
控制
最大
篇文章
结果
流程
示例
分析
名字
实体
数据
数量
更多
语句
不错
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器间安全通信
lol无法进入服务器
首都网络安全日那年设立
国内网络安全最好的学校
数据库厂家定制
安徽百旺税控盘服务器端口
考勤系统数据库连接失败
查看当前mysql数据库
网络安全法卡通视频
数据库某个字段大于0
专科网络技术和软件技术
计算机网络技术实践视频
手机的服务器由哪个国家管控
一个服务器有多少高阶督军
服务器磁盘状态ugoodf
河西租房软件开发
软件开发项目激励方案
怎么关闭网络安全证书
深圳市聚橙网络技术有限
计算机网络技术专业学高数吗
现代俳句数据库
刘金岭数据库2012答案
数据库导入注释乱码
广州九淇网络技术有限公司
宇视系统服务器配置
2018年西安网络安全论坛
网络安全法 部门统筹
彩票软件开发公司收费
战地5创建社区服务器
方舟优质服务器推荐