java实现分页

这是一个使用Java实现分页功能的示例代码,定义了一个泛型类`Page`,包含数据列表、总条数、页数和每页大小等属性,并提供了构造方法和静态分页方法。在`main`方法中展示了如何使用该分页类处理数据。
摘要由CSDN通过智能技术生成

代码

import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

@Data
public class Page<T> implements Serializable {
    private List<T> pages;		//数据
    private long total;	        //总条数
    private int page;		//页数
    private int size;		//每页几条

    public Page() {}

    public Page(List<T> pages, long total, int page, int size) {
        this.pages = pages;
        this.total = total;
        this.page = page;
        this.size = size;
    }
    //分页方法  传入页数  条数  需要分页的数据
    public static Page<Object> pages(int page,int size,List lists) {
        if (page==0){//如果页数为0则自增
            page++;
        }
        if (size==0){//如果条数为0则自增
            size++;
        }
        int page1=(page-1)*size;//当前页数
        int size1=page*size;//当前条数
        List list= new ArrayList<>();//创建一个空集合,用来储存分页后的数据
        if(size1>lists.size()){//如果总条数大于当前数据条数,将总条数赋值为当前数据条数
            size1= lists.size();
        }
        for(int i=page1;i<size1;i++){
            list.add(lists.get(i));//将当前页的数据放入集合中
        }
        Page<Object> pages = new Page<Object>();
        pages.setTotal(lists.size());
        pages.setPage(page);
        pages.setSize(size);
        pages.setPages(list);
        return pages;
    }
    public static void main(String[] args) {
        List<String> strings=new ArrayList<>;
        Page<Object> pages=pages(1,10,strings);
        System.out.println(pages);
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java实现分页可以使用以下步骤: 1. 定义每页显示的记录数和当前页码。 ``` int pageSize = 10; // 每页显示的记录数 int currentPage = 1; // 当前页码 ``` 2. 从数据库中查询总记录数。 ``` String countSQL = "SELECT COUNT(*) FROM table_name"; PreparedStatement countStmt = connection.prepareStatement(countSQL); ResultSet countRs = countStmt.executeQuery(); countRs.next(); int totalRecord = countRs.getInt(1); // 总记录数 ``` 3. 计算总页数。 ``` int totalPage = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1; ``` 4. 计算当前页的起始位置。 ``` int startPosition = (currentPage - 1) * pageSize; ``` 5. 查询当前页的数据。 ``` String dataSQL = "SELECT * FROM table_name LIMIT ?, ?"; PreparedStatement dataStmt = connection.prepareStatement(dataSQL); dataStmt.setInt(1, startPosition); dataStmt.setInt(2, pageSize); ResultSet dataRs = dataStmt.executeQuery(); while (dataRs.next()) { // 处理每条数据 } ``` 完整的代码示例: ```java int pageSize = 10; // 每页显示的记录数 int currentPage = 1; // 当前页码 String countSQL = "SELECT COUNT(*) FROM table_name"; PreparedStatement countStmt = connection.prepareStatement(countSQL); ResultSet countRs = countStmt.executeQuery(); countRs.next(); int totalRecord = countRs.getInt(1); // 总记录数 int totalPage = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1; int startPosition = (currentPage - 1) * pageSize; String dataSQL = "SELECT * FROM table_name LIMIT ?, ?"; PreparedStatement dataStmt = connection.prepareStatement(dataSQL); dataStmt.setInt(1, startPosition); dataStmt.setInt(2, pageSize); ResultSet dataRs = dataStmt.executeQuery(); while (dataRs.next()) { // 处理每条数据 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值