前言:
此时姐妹们对“java中读取数据库中数据”大约比较关怀,大家都想要了解一些“java中读取数据库中数据”的相关文章。那么小编也在网上网罗了一些有关“java中读取数据库中数据””的相关内容,希望姐妹们能喜欢,同学们一起来学习一下吧!说明:实际业务开发中,从数据库中获取所有站点降水数据,需要对站点降水进行累加,根据站点进行分组,然后将分组之后的降水进行累加。下面的方法就是使用Stream流进行站点分组,获取分组之后降水累加。
业务代码
public List<AtstationDTO> getTimeRangeRainfall(Long startTime, Long endTime) { List<AtstationDTO> rainfalls = new ArrayList<>(); List<AtstationDTO> stations = new ArrayList<>(); List<String> tableNames = CommonTableName.calcTimeRangeToTableNames(DateUtils.timestampToDate(startTime), DateUtils.timestampToDate(endTime), "data_atstation_all", "base"); for (String tableName : tableNames) stations.addAll(atstationMapper.selectRainfallByTime(tableName, startTime, endTime)); stations.parallelStream().collect(Collectors.groupingBy((station) -> new AtstationDTO(station.getStationIdC(), station.getStationName(), station.getLon(), station.getLat()), Collectors.summarizingDouble(AtstationDTO::getMinuteRainfall))).forEach((key, value) -> { key.setTimestamp(endTime); key.setMinuteRainfall((float)value.getSum()); rainfalls.add(key); }); return rainfalls;}
核心代码
stations.parallelStream().collect(Collectors.groupingBy((station) -> new AtstationDTO(station.getStationIdC(), station.getStationName(), station.getLon(), station.getLat()), Collectors.summarizingDouble(AtstationDTO::getMinuteRainfall))).forEach((key, value) -> { key.setTimestamp(endTime); key.setMinuteRainfall((float)value.getSum()); rainfalls.add(key);});
路漫漫其修远兮,吾将上下而求索
译文:在追寻真理方面,前方的道路还很漫长,但我将百折不挠,不遗余力地去追求和探索。
如果您有什么好的想法与方法,欢迎评论区留言,我们一起讨论~
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java中读取数据库中数据