使用select查询时,如果结果集数据量较大,一个页面难以处理,就会采用分页查询。
分页查询,就是从结果集中拿出指定的第n页到第m页的数据来显示。
- // limit分页公式
- // currentPage:当前页
- // pageSize:每页记录数
- limit (currentPage-1) * pageSize,pageSize
- // SQL语句
- select * from student limit(currentPage-1)*pageSize,pageSize;
【Mapper接口】
- @select("select * from student limit #{pageBegin},#{pageSize}")
- List
findByPage(@Param("pageBegin") Integer PageBegin,@Param("PageSize")Integer PageSize);
【Controller类·】
- @GetMapping("/findByPage")
- public List
findByPage(Integer page,Integer pageSize){ - Integer pageBegin = (page-1) * pageSize;
- return StudentMapper.findByPage(pageBegin,pageSize);
- }
1. 【定义Page类——封装分页结果】
- /**
- * 分页结果封装对象
- */
- @AllArgsConstructor
- @NoArgsConstructor
- @Data
- public class PageResult implements Serializable{
- private Long total;//总记录数
- private List rows;//当前页结果
- }
2.【定义PageResult类——封装查询条件】
封装查询条件 请求参数包括页码、每页显示记录数、查询条件。 请求参数的json格式为:{currentPage:1,pageSize:10,queryString:''apesource''}
- // 分页请求。
- @AllArgsConstructor
- @NoArgsConstructor
- @Data
- public class QueryPageBean implements Serializable{
- private Integer currentPage;//当前页码
- private Integer pageSize;//每页记录数
- private String queryString;//查询条件
-
- public QueryPageBean(Integer currentPage, Integer pageSize) {
- this.currentPage = currentPage;
- this.pageSize = pageSize;
- }
- }
3.【Dao层】
- /*** 持久层Dao接口 */
- @Mapper
- public interface CheckGroupDao {
- public Page
selectByCondition(String queryString); - }
4.【xxxMapper.xml映射文件】
-
- select * from t_checkgroup
- <if test="value != null and value.length > 0">
- where code = #{value} or name = #{value} or helpCode = #{value}
- if>
-
5.【Service层】
- @Override
- public PageResult pageQuery(Integer currentPage, Integer pageSize, String queryString) {
- PageHelper.startPage(currentPage, pageSize);
- Page
page = checkGroupDao.selectByCondition(queryString); - return new PageResult(page.getTotal(), page.getResult());
- }
6. 【Controller层】
- //分页查询
- @PostMapping("/findPage")
- public PageResult findPage(@RequestBody QueryPageBean queryPageBean) {
- try {
- PageResult pageResult = checkGroupService.pageQuery(queryPageBean.getCurrentPage(),queryPageBean.getPageSize(),queryPageBean.getQueryString());
- return pageResult;
- } catch (Exception e) {
- return null;
- }
- }