今天项目需要用模糊查询,使用java8的模糊查询方法如下:
//个人封装好的方法,获取近七天的日期数组 格式:[2021-08-03,2021-08-03,....]
List<String> datelist = ym.getDays(7);
List<Integer> list = new ArrayList<>();
int num = 0;
for (int i = 0; i < datelist.size(); i++) {
String date = datelist.get(i);
num = (int) intelligenceService.list().stream()
.filter(item -> item.getState().equals("1") && item.getDisposeTime().matches("(.*)"+date+"(.*)" ))
.count();
list.add(i,num);
}
开始时,我将其放在前面,查询报错,然后放入后面就不报错了,应该是 && 起了作用,没有当天的数据,直接短路,后面不再查询,于是就将其放入后面,先查询已处理的数据,在比对当天是否有数据,测试接口正常,数据也对的上。
新人见解,如有不对之处,还请指点一下,感谢
分页查询
List<DailyViolations> list = dailyViolationsService.list().stream()
.sorted(Comparator.comparing(DailyViolations::getState).thenComparing(DailyViolations::getTime,Comparator.reverseOrder()))
.skip((current-1)*size).limit(size)
.collect(Collectors.toList());
这篇博客介绍了如何在Java8中进行模糊查询和分页查询。通过使用stream API,作者展示了如何过滤并计数满足特定条件的数据,并将结果进行排序。在模糊查询部分,重点在于使用了正则表达式进行匹配,并通过短路操作优化了性能。在分页查询部分,利用skip和limit方法实现了分页功能,并结合Comparator进行排序。整个过程展示了Java8在处理数据时的高效和灵活性。
2291

被折叠的 条评论
为什么被折叠?



