java后台日期怎么去重,JAVA后台业务实现去重
不使用Mysql的DISTINCT,在后臺業務實現去重
在數據倆非常大的情況下,使用Mysql的DISTINCT,會對查詢造成非常大的影響
所以需要在后臺實現去重,方法如下:
去重,首先想到的是使用Set集合,
但有主鍵id的情況下,需要在實體類中重寫equal()和hashCode()方法
數據庫信息:
實體類(省略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后臺實現去重,測試返回信息如下:
總結
以上是生活随笔為你收集整理的java后台日期怎么去重,JAVA后台业务实现去重的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php中显示不出图像,php – 无法显
- 下一篇: php stripos 返回值,php函