SpringBoot项目(瑞吉外卖)分页查询功能的实现
分页查询
代码逻辑:
- 页面发送ajax请求,将分页查询参数(page,pageSize)提交到服务端
- 服务端Controller接收到接收到页面提交的数据并调用Service查询数据
- 调用Mapper查询数据库
- Controller操作数据库将查询到的数据响应给页面
- 页面接收到数据并通过ElementUI的Table组件展示到页面
由于前端已经写好,我们展示以下前端的代码,本章主要介绍后端的逻辑
(大家可以在这里领取完整的资料:
UI组件
发送ajax的js代码
步骤:
- 构造分页构造器
- 构造条件构造器
- 设置想要构造的条件
举例:只涉及一个表的展示和涉及两个表的展示
以下是涉及category表的分页展示和数据库字段
代码逻辑:
1.我们在浏览器点击分类管理,打开控制台,则会找到分类查询的请求(由于我这里是提前完善好了功能,所以状态码是200,一般没有完善的话,左边的请求就会爆红并且右边的状态码是400)
2.我们找到请求地址是:
为此需要在服务端完善这个请求,我们之前已经写好了CategoryController
在这个类下面直接新建一个方法,请求方式是GET,请求的路径“/page",然后请求参数 int page 和 int pageSize
3,代码逻辑
构造分页构造器
Page<Category> page = new Page<>(); 构造条件构造器 LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>(); 设置分页条件 //根据sort进行排序 queryWrapper.orderByAsc(Category::getSort); 进行分页查询 categoryService.page(pageInfo,queryWrapper); 最后返回就可以 return R.success(pageInfo);
4.完整代码
/** * 分页查询 * @param page * @param pageSize * @return */ @GetMapping("/page") public R<Page> page(int page,int pageSize){ //分页构造器 Page<Category> pageInfo = new Page<>(page,pageSize); //条件构造器 LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>(); //根据sort进行排序 queryWrapper.orderByAsc(Category::getSort); //进行分页查询 categoryService.page(pageInfo,queryWrapper); return R.success(pageInfo); }
最后运行看看运行结果
