当前位置:网站首页>简单理解实现分页查询
简单理解实现分页查询
2022-08-11 11:52:00 【-加油】
举例分页:每页显示5条数据。
1、
查询 第1页: pageNum=1 pageSize=5.
(pageNum-1)*pageSize = 该页的起始位置
(1-1)*5 =0 ——> limit 0,5
0: 从第1个数据开始 。
5: 每页有5个数据。
select * from sys_user limit 0,5
2、
查询 第2页: pageNum=2 pageSize=5.
(pageNum-1)*pageSize = 该页的起始位置
(2-1)*5 =5 ——> limit 5,5
5: 从第6个数据开始 。
5: 每页有5个数据。
select * from sys_user limit 5,5
3、
查询 第3页: pageNum=3 pageSize=5.
(pageNum-1)*pageSize = 该页的起始位置
(3-1)*5 =10 ——> limit 10,5
10: 从第11个数据开始 。
5: 每页有5个数据。
select * from sys_user limit 10,5
4、简洁代码仅便于理解
template:
<template>
<div>
<div style="margin: 10px 0">
<el-button type="primary" @click="load">搜索</el-button>
</div>
<div>
<el-table
:data="tableData">
<!-- 页面表格 -->
</el-table>
</div>
<div style="padding: 10px 0">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageNum"
:page-sizes="[5, 10, 15, 20]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</div>
</template>
script: 当然可用axios
export default {
data(){
return{
pageNum:1,
username:'',
pageSize:5,
total:0,
tableData:[],
}
},
methods:{
load() {
// fetch("http://localhost:9090/user/page?pageNum=" + this.pageNum + "&pageSize=" + this.pageSize + "&username=" + this.username)
// .then(res => res.json()).then(res => {
// this.tableData = res.data //数据显示在页面
// this.total = res.total
// })
request.get("http://localhost:9090/user/page" ,{
params:{
pageNum: this.pageNum,
pageSize: this.pageSize,
username: this.username
}
}).then(res=>{
this.tableData = res.records;
this.total = res.total;
})
},
handleSizeChange(pageSize) {
this.pageSize = pageSize
this.load()
},
handleCurrentChange(pageNum) {
this.pageNum = pageNum
this.load()
}
},
created(){
this.load();
}
}
controller:
没有用service。
@GetMapping("/page")
public Map<String, Object> findPage(@RequestParam Integer pageNum,
@RequestParam Integer pageSize,
@RequestParam String username) {
pageNum = (pageNum - 1) * pageSize;//该页的起始位置
username = "%" + username + "%";
List<User> data = userMapper.selectPage(pageNum, pageSize, username);
Integer total = userMapper.selectTotal(username);
Map<String, Object> res = new HashMap<>();
res.put("data", data);
res.put("total", total);
return res;
}
mapper:
@Select("select * from sys_user where username like #{username} limit #{pageNum}, #{pageSize}")
List<User> selectPage(Integer pageNum, Integer pageSize, String username);
//根据username 进行模糊查询
@Select("select count(*) from sys_user where username like concat('%', #{username}, '%') ")
Integer selectTotal(String username);
边栏推荐
猜你喜欢
随机推荐
Flutter 教程之 Kotlin 多平台与 Flutter,为您的应用选择哪一个
三面蚂蚁金服,分享面试经历总结(已拿offer)
2021年全国大学生电子设计竞赛官方通知正式发布
公共管理学试题及参考答案
乐观锁与悲观锁
案例复现,带你分析Priority Blocking Queue比较器异常导致的NPE问题
锂电池充电芯片IC
PlutoSDR学习指南【2】无线数据传输
【深度学习】笔记2-模型在测试集的准确率大于训练集
Simple to use NLP annotation tool the Brat
PerfView专题 (第一篇):如何寻找热点函数
简化供采交易路径,B2B电子交易系统实现钢铁行业全链路数字化
公共管理学选择题(最终版)
Mybaits学习笔记(四)动态Sql
从滴滴被罚款事件思考企业数据治理问题
vending machine
公共经济学(开卷)期末复习题
[10 o'clock open class]: Optimization of AV1 encoder and its application in streaming media and real-time communication
单峰函数极值问题的解决方案 : 三分 & 二分与三分的本质区别
Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)