分页查询:后端

这篇博客主要介绍如何在Spring Boot应用中实现后端的分页查询功能。通过控制器、Service、ServiceImpl、Mapper、Mapper XML以及分页查询工具类的详细说明,帮助读者理解并掌握分页查询的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分页查询直接写方法
controller

   @GetMapping("/currentPage")
     public Result<?> findByIdPage(@RequestParam(defaultValue = "1") int currentPage ,@RequestParam(defaultValue = "10") int pageSize ){
         Page<Article> list = articleService.findByIdPage(currentPage,pageSize);
         return Result.sucess(list);
     }

Service

    //分页查询用户列表
    Page<User> findByPage(int currentPage,int pagesize);

ServiceImpl

    @Override
    public Page<User> findByPage(int currentPage, int pagesize) {
        Page<User> userPage = new Page<>();
      
        userPage.setTotal_data(userMapper.findUserTotal());
        userPage.setPageNum(currentPage);
        userPage.setPageSize(pagesize);
        if(userPage.getTotal_data()%pagesize ==0){
            userPage.setTotalPage(userPage.getTotal_data()/pagesize);
        }
        else {
            userPage.setTotalPage(userPage.getTotal_data()/pagesize + 1);
        }
        int begin = (currentPage -1 )* pagesize;
          userPage.setData(userMapper.findByPage(begin,pagesize));
        return userPage;
    }

mapper

    List<User> findByPage(int currentPage, int pagesize);

mapperXml

    <select id="findByIdPage" resultType="com.example.springboot.Common.Article" parameterType="java.lang.Integer">
        select * from data_data limit #{param2},#{param3}
    </select>

分页查询的工具类包

package com.example.springboot.Util;


import java.util.List;

public class Page<T> {
    private  int index;     //索引
    private  int pageSize;    //每页显示的条数
    private  int totalPage;     //总页数
    private  int pageNum;           //当前页
    private List<T> data;
    private int total_data;  //数据总和

    @Override
    public String toString() {
        return "Page{" +
                "index=" + index +
                ", pageSize=" + pageSize +
                ", totalPage=" + totalPage +
                ", pageNum=" + pageNum +
                ", data=" + data +
                ", total_data=" + total_data +
                '}';
    }
public Page(){}
    public Page(int index, int pageSize, int totalPage, int pageNum, List<T> data, int total_data) {
        this.index = index;
        this.pageSize = pageSize;
        this.totalPage = totalPage;
        this.pageNum = pageNum;
        this.data = data;
        this.total_data = total_data;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public int getPageNum() {
        return pageNum;
    }

    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }

    public List<T> getData() {
        return data;
    }

    public void setData(List<T> data) {
        this.data = data;
    }

    public int getTotal_data() {
        return total_data;
    }

    public void setTotal_data(int total_data) {
        this.total_data = total_data;
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值