分页功能实现

实现列表数据的翻页功能有两种实现方式,一种为后端实现,另外一种为前端实现,推荐后者,因为前端实现可能就需要两个单词,后端却要写很多代码

一、后端实现方式

使用java+mybatis

要实现的效果

接口传入pageNum和pageSize返回数据库里面的结果

上代码

controller层

package com.example.demo.controller;

import com.example.demo.bean.GeneralResult;
import com.example.demo.dao.ProductMapper;
import com.example.demo.entity.Page;
import com.example.demo.entity.Product;
import com.example.demo.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;

@RestController
@ResponseBody
@RequestMapping(value = "/api")
public class ProductController {
    @Autowired
    ProductMapper productMapper;
    @RequestMapping(value = "/v1/admin/products", method = RequestMethod.GET)
    public GeneralResult login(Page page) {
        System.out.println("获取到的页码是:"+page.getPageNum());
//因为后面使用的sql是limit a,b语句,所以把pagenum要转换一下,limit a,b表示取从a+1开始,取b个数
        page.setPageNum((page.getPageNum()-1)*page.getPageSize());
        ArrayList<Product> arrayList = productMapper.getProductByPage(page);
        GeneralResult result=new GeneralResult();
        result.setContent(arrayList);
        return result;
    }
}
ProductMapper.java
package com.example.demo.dao;

import com.example.demo.entity.Page;
import com.example.demo.entity.Product;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;

@Repository
public interface ProductMapper {

    ArrayList<Product>  getProductByPage(Page page);
}

Page.java

package com.example.demo.entity;

import lombok.Data;


@Data
public class Page {
    Integer pageNum;
    Integer pageSize;
}
ProductMapper.xml
<select id="getProductByPage"  resultMap="BaseResultMap" parameterType="com.example.demo.entity.Page">
    select
    <include refid="Base_Column_List" />
    from product
    limit #{pageNum},#{pageSize}
  </select>

postman

二、前端实现方法

前端框架antd

<Table rowKey="id" pagination={{total:dataSource.length,defaultPageSize:10}} columns={columns} bordered dataSource={dataSource}></Table>

pagination为页面的配置参数

total:总数据条数

defaultPageSize:默认每页数据量

分页 Pagination - Ant Design

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值