当前位置: 首页 > news >正文

java后台日期怎么去重,JAVA后台业务实现去重

不使用Mysql的DISTINCT,在后台业务实现去重

在数据俩非常大的情况下,使用Mysql的DISTINCT,会对查询造成非常大的影响

所以需要在后台实现去重,方法如下:

去重,首先想到的是使用Set集合,

但有主键id的情况下,需要在实体类中重写equal()和hashCode()方法

数据库信息:

b387a0790b5059bfc329bf475485fd72.png

实体类(省略get set方法):

private Integer id;

private String sex;

private String project;

private String name;

@Override

public String toString() {

return "User{" +

"id=" + id +

", sex='" + sex + '\'' +

", project='" + project + '\'' +

", name='" + name + '\'' +

'}';

}

@Override

public boolean equals(Object o) {

if (this == o) {

return true;

}

if (!(o instanceof User)) {

return false;

}

User user = (User) o;

return Objects.equals(getSex(), user.getSex()) &&

Objects.equals(getProject(), user.getProject()) &&

Objects.equals(getName(), user.getName());

}

@Override

public int hashCode() {

return Objects.hash(getSex(), getProject(), getName());

}

业务层(使用set实现去重):

public HashSetselectAll() {

long start = System.currentTimeMillis();

Listuser = null;

HashSetset =null;

try {

user = returnFixedSex.ReturnFixedBySelectAll();

long end = System.currentTimeMillis();

LOGGER.info("查询全部数据完成,共计消耗时间:" + (end - start) / 1000);

set=new HashSet<>();

for (User user1 : user) {

set.add(user1);

}

} catch (Exception fullMessage) {

fullMessage.printStackTrace();

LOGGER.error("数据查询失败", fullMessage);

}

return set;

}

至此,使用Java后台实现去重,测试返回信息如下:

5aac2d98ab35bc6c6bd2e90da2b480d4.png


http://www.taodudu.cc/news/show-647733.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • php stripos 返回值,php函数stripos详解
  • java中gc的认识,java JVM GC 笔记(个人对GC 或JVM 的了解)
  • java libpcap,Linux下编译安装libpcap
  • 网页实现人脸识别PHP,奇思妙想-用HTML5进行人脸识别
  • 文件包含漏洞不能包含php,ThinkPHP5漏洞分析之文件包含
  • php对应哪个oracle版本,Oracle 版本说明
  • php 主页子标题修改,关于有部分用户默认PC主页大标题标签修改无效的答疑.
  • 基于matlab的智能天线波束方向图仿真,基于MATLAB的智能天线波束方向图仿真
  • python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑
  • angularjs 导出excel php,AngularJS 导出Excel指令
  • php 连续点击事件,javascript设置连续两次点击按钮时间间隔的方法_javascript技巧...
  • oracle10g数据库热备份,Oracle10g数据库冷备份脚本文件
  • Oracle创建序列的sql语句,【Oracle学习】之 序列(Sequence)
  • cssd拉起oracle,oracle rac /etc/init.d/init.cssd startcheck
  • oracle dg状态查询,oracle dg状态检查及相关命令
  • keep alive PHP,vue中keep-alive使用方法详解
  • oracle库缓存锁,Laravel 7.10 中的数据库缓存锁定和并发限制
  • 源码时代php中级项目,PHP学科项目评比圆满结束
  • linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt
  • linux c编程头文件,如何在Linux中找到C编程语言的头文件?
  • linux 脚本中除法运算符,Linux中Shell的算数运算符和位运算符用法笔记
  • linux程序获取透传参数,Linux内核中TCP SACK处理流程分析
  • Linux线程时间片如何修改,请教如何修改线程时间片
  • 安卓虚拟linux系统教程,在Linux上模拟Android应用程序的3种方法 | MOS86
  • linux中断程序快捷键,linux命令行快捷键
  • linux用户命令权限管理,Linux命令-用户、权限管理
  • linux缓存文件地址,如何遍历linux内核中的文件地址空间的页面缓存树(基数树)
  • 成绩排序的c语言算法,成绩排序系统(练习排序算法和复习C语言)
  • c语言规定 函数返回值6,C语言六函数.ppt
  • 在qt中用c语言数组,在QT函数中返回一个数组/把一个数组传参给函数