jAVA代码pageinfo实现分页查询上一页下一页功能
时间: 2023-08-27 12:37:56 浏览: 143
Python Django 添加首页尾页上一页下一页代码实例
以下是一个示例代码实现分页查询并包括上一页和下一页的功能,使用的是 Java 和 Spring Boot 框架:
```java
@GetMapping("/data")
public Map<String, Object> getData(
@RequestParam(name = "page", defaultValue = "1") int page,
@RequestParam(name = "per_page", defaultValue = "10") int perPage) {
// 假设数据存储在一个列表中,实际情况中可能需要从数据库或其他数据源中查询
List<Integer> dataList = IntStream.rangeClosed(1, 100).boxed().collect(Collectors.toList());
// 计算总页数
int totalPage = (int) Math.ceil((double) dataList.size() / perPage);
// 分割结果集
int start = (page - 1) * perPage;
int end = Math.min(start + perPage, dataList.size());
List<Integer> data = dataList.subList(start, end);
// 计算上一页和下一页的页码
Integer prevPage = page > 1 ? page - 1 : null;
Integer nextPage = page < totalPage ? page + 1 : null;
// 返回结果
Map<String, Object> result = new HashMap<>();
result.put("data", data);
result.put("prev_page", prevPage);
result.put("next_page", nextPage);
result.put("total_page", totalPage);
return result;
}
```
以上代码中,我们使用了 Spring Boot 框架的注解方式定义了一个 GET 请求的接口,接收前端传递的参数并进行分页查询。具体实现过程与前面的 Python 示例类似,主要是计算总页数、分割结果集和计算上一页和下一页的页码。最后将结果封装成一个 Map 对象返回给前端展示。
需要注意的是,在实际应用中,可能需要对分页查询进行优化,例如使用缓存、限定查询结果的数量等等。
阅读全文