当前位置:网站首页>开源一夏 | 查询分页不只有limit,这四种分页方法值得掌握
开源一夏 | 查询分页不只有limit,这四种分页方法值得掌握
2022-08-04 09:06:00 【InfoQ】
- 由于前端在页面显示数据时,希望每个页面只显示指定条数的数据,由于数据量较大,不能够一次性展示,所以就通过限制每个页面固定的条数进行展示。
- 如果数据量较大的话,页面也不一定加载完全,所以造成效率比较差,所以解决方案分页查询就可以很好的解决这个问题了,通过把庞大的数据按照固定的数目显示,在通过上一页或下一页的按钮显示其它的数据。
limit的传统方式
- 如果是一个参数,如limit 10,则表示默认从开始位置开始获取10条数据。
- 如果是两个参数,第一个参数指定的是返回行数的开始位置,第二个参数指定的是返回记录行的数目。Eg: select * from user limit 0,10表示从第0个位置开始获取10条数据。
PageHelper插件的方式
- 引入依赖
<!-- pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.version}</version>
</dependency>
- 使用代码注意
PageHelper.startPage(pageNo, pageSize)
PageResult<List<Employee>> result = new PageResult<>();
//就是下边的这个地方,使用了 pageNo是offset就是开始位置的偏移量,第二个参数pageSize是查询返回的数据的条数
PageHelper.startPage(pageNo, pageSize);
try {
List<Employee> employeeList = employeeService.findAll();
PageInfo<Employee> pageInfo = new PageInfo<>(employeeList);
log.info(String.valueOf(employeeList));
result.setTotal(pageInfo.getTotal());
result.setPages(pageInfo.getPages());
result.setCurrent(pageInfo.getPageNum());
result.setSize(pageInfo.getPageSize());
result.setResult(employeeList);
result.success("查询成功!");
}
- 查询结果
自定义Interceptor的方式
RowsBounds方式
service层:
RowBounds rowbounds = new RowBounds(offset, Integer.parseInt(pageSize));
//用户数据集合
List<Map<String, Object>> userList = userDao.queryUserList(rowbounds);
Dao层:
public List<Map<String, Object>> queryUserList(RowBounds rowbounds);
mapperxml层:
<!-- 查询用户列表 -->
<select id="queryUserList" resultType="java.util.Map">
select * from user
</select>
总结
边栏推荐
- The separation configuration Libpq is supported, speaking, reading and writing
- Oracle怎么获取当前库或者同一台服务器上某几个库的数据总行数?
- Detailed explanation of switch link aggregation [Huawei eNSP]
- MindSpore:Ascend运行出现问题
- No module named 'flask_misaka' has been resolved [BUG solution]
- 从零开始的tensorflow小白使用指北
- 蘑菇书EasyRL学习笔记
- Four common methods of network attacks and their protection
- 思想茶叶蛋 (Jul 31,2022)| 元宇宙(Metaverse)下了一枚什么样的蛋
- 【论文笔记】Delving into the Estimation Shift of Batch Normalization in a Network
猜你喜欢
2022-08-02 Analyze RK817 output 32k clock PMIC_32KOUT_WIFI to WiFi module clock register devm_clk_hw_register
从零开始的tensorflow小白使用指北
下午14:00面试,14:08低着头出来了 ,问的实在是太...
I am 37 this year, and I was rushed by a big factory to...
【正点原子STM32连载】第三章 开发环境搭建 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
如何设计一个注册中心
[Cloud Residency Co-Creation] HCSD Celebrity Live Streaming – Employment Guide
Shell编程的条件语句
leetcode二叉树系列(二叉搜索树篇)
ShowMeAI —— Show u 三连
随机推荐
Since his 97, I roll but he...
How Oracle for current library or certain library data on the same server number?
MindSpore:【AIR模型导出】导出时提示源码中select_op参数类型转换失败
如何设计一个注册中心
思想茶叶蛋 (Jul 31,2022)| 元宇宙(Metaverse)下了一枚什么样的蛋
94后字节P7晒出工资单:狠补了这个,真不错...
yuv420sp转jpg
.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)
Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
GBsae 8 c database using an error, how to do?
grafana手册之可视化配置图表table
继承和static关键字
将jpg图片转换成yuv420(NV12)数据文件
MindSpore:损失函数问题
Post-94 Byte P7 posted the salary slip: It's really good to make up for this...
【无标题】
[Punctuality Atom STM32 Serial] Chapter 2 STM32 Introduction Excerpted from [Punctual Atom] MiniPro STM32H750 Development Guide_V1.1
2022年化工自动化控制仪表考试模拟100题及模拟考试
v-model原理,在“radio”、“checkbox”、“select”、修饰符
【正点原子STM32连载】第一章 本书学习方法 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1