String keyword = request.getParameter("keyword"); //前端传进list模糊查询字段
int page = Integer.parseInt((StringUtils.isBlank(request.getParameter("page"))) ? "1" : request.getParameter("page")); //分页条件1
int pageSize = Integer.parseInt((StringUtils.isBlank(request.getParameter("pageSize"))) ? "10" : request.getParameter("pageSize"));//分页条件2
QueryResult queryResult = new QueryResult();//返回前端结果(自己封装)
List<WarningInfoBean> infoList = SingletonCacheUtil.getInstance().getAlertCacheInfoList(); //从缓存拿数据
if (null != infoList && infoList.size() > 0) {
logger.info("缓存数据大小: "+infoList.size());
List<WarningInfoBean> list = new ArrayList<>();
for (WarningInfoBean info : infoList) {
if (StringUtils.isNotBlank(keyword)) {
Pattern pattern = Pattern.compile(keyword); // 模糊区分大小
//Pattern pattern = Pattern.compile(name,Pattern.CASE_INSENSITIVE); //模糊不区分大小
Matcher matcher = pattern.matcher(info.getAlertName()); // 模糊比对条件1
Matcher matcher1 = pattern.matcher(info.getCompanyName());// 模糊比对条件2
if (matcher.find() || matcher1.find()) { // 模糊查询 // matcher.matches()精确查询
list.add(info);
}
} else {
list.add(info);
}
}
if (list.size() > 0) {
// 处理分页
int size = list.size();
// 分页计算
int pageStart = page == 1 ? 0 : (page - 1) * pageSize;
int pageEnd = size < page * pageSize ? size : page * pageSize;
if (size > pageStart) {
list = list.subList(pageStart, pageEnd);
}
queryResult.setRows(list);
queryResult.setTotal(size);
}
}else {
logger.info("缓存数据为空!");
}
write(queryResult);
Java List模糊查询并分页
缓存数据模糊查询与分页实现
最新推荐文章于 2023-05-18 08:46:35 发布
本文介绍了一种从缓存中进行模糊查询并实现分页展示的方法。通过正则表达式对关键词进行匹配,对缓存中的数据进行过滤,并结合前端传来的分页参数,实现了高效的数据查询与展示。
187

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



