Jave实现分页功能
2023-12-27 15:24:14
目录
一、List分页
// pageNo表示当前页[1-n],pageSize表示每页大小
int total = list.size(); // 总数
// 查询总页数
// 方法一(推荐)
int pageSum = (total -1) / pageSize +1;
// 方法二
int pageSum = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
// 方法三
int pageSum=(total + pageSize - 1) / pageSize;
// 获取当前页数据
List<User> subList = list.stream().skip ((pageNo - 1 * pageSize) .limit (pageSize) .collect(Collectors.toList());
二、数据库分页查询
1.mysql数据库
// LIMIT从0开始
// 方法一
LIMIT 位置偏移量, 每页条目数;
// 方法二(位置偏移量 = 0)
LIMIT 每页条目数;
// 方法三
LIMIT 每页条目数 OFFSET 初始偏移量;
2.oracle数据库
-- RN从1开始
-- 方法一
-- 显示RN
SELECT *
FROM
(
SELECT
ROWNUM AS RN,
I.*
FROM
(
SELECT * FROM DB_ORDER
) I
)
WHERE RN >= 2 AND RN <= 6
-- 方法二
-- 不显示ROWNUM
SELECT * FROM DB_ORDER WHERE ROWNUM >= 2 AND ROWNUM <= 6
-- 方法三
-- 不显示ROWNUM
-- minus:第一条sql语句获得的结果”减去“第二条sql语句获得的结果
SELECT * FROM DB_ORDER WHERE ROWNUM < 6 MINUS SELECT * FROM DB_ORDER WHERE ROWNUM < 2
三、SpringDataJPA分页
SpringDataJPA分页就是定义Pageable对象来处理分页
PageRequest定义分页参数
Page对象对查询结果进行分页包装,包装后的结果pageResult可以得到总记录数、总页数、分页列表等数据结果
<!-- 引入依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
// 排序
Sort sort = Sort.by(Sort.Direction.DESC, "id");
// 分页
// 当前页从0开始
Pageable pageable = PageRequest.of(pageIndex, pageSize, sort);
// 分页查询
Page<User> userPage = userDao.findAll(pageable);
// 获取分页信息
page.getTotalElements() // 总条数
page.getTotalPages // 总页数
page.getContent() // 分页list列表
四、MyBatis分页(使用PageHelper实现分页)
PageHelper官网:https://pagehelper.github.io/ 文档中有配置的详细步骤
配置可参考:https://blog.csdn.net/csucsgoat/article/details/116680557
<!-- 引入依赖 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
PageHelper.startPage(pageIndex, pageSize);
List<PromotePerson> list = promotePersonMapper.selectAll();
PageInfo<PromotePerson> pageInfo = new PageInfo<>(list);
PageHelper.clearPage();
// 返回分页结果
PageResult pageResult = new PageResult();
pageResult.setPageIndex(pageIndex);
pageResult.setPageSize(pageSize);
pageResult.setPages(pageInfo.getPages());
pageResult.setTotal((int) pageInfo.getTotal());
pageResult.setList(list);
return pageResult;
五、Hutool工具类分页
Hutool工具链接:https://hutool.cn/
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.1.2</version>
</dependency>
PageUtil.totalPage(int/long totalCount, int pageSize) // 计算总页数
CollUtil.page(int pageNo, int pageSize, List<T> list) // 对指定List分页取值, pageNo从0开始
文章来源:https://blog.csdn.net/xiaoyu_alive/article/details/135127217
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!