06 分页

文章目录

PageInfo

java 复制代码
package com.aistart.tech.common;

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

public class PageInfo<T> implements Serializable {
    private Integer pageNum;//当前页

    private Integer pageSize;//每页显示条数

    private Integer pageTotal;//总的页数

    private Integer rows;//总的条数

    private List<T> dataList;

    public Integer getPageNum() {
        return pageNum;
    }

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

    public Integer getPageSize() {
        return pageSize;
    }

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

    public Integer getPageTotal() {
        return pageTotal;
    }

    public void setPageTotal(Integer pageTotal) {
        this.pageTotal = pageTotal;
    }

    public Integer getRows() {
        return rows;
    }

    public void setRows(Integer rows) {
        this.rows = rows;
    }

    public List<T> getDataList() {
        return dataList;
    }

    public void setDataList(List<T> dataList) {
        this.dataList = dataList;
    }

    public PageInfo(Integer pageNum, Integer pageSize, Integer pageTotal, Integer rows, List<T> dataList) {
        this.pageNum = pageNum;
        this.pageSize = pageSize;
        this.pageTotal = pageTotal;
        this.rows = rows;
        this.dataList = dataList;
    }

    public PageInfo() {
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("PageInfo{");
        sb.append("pageNum=").append(pageNum);
        sb.append(", pageSize=").append(pageSize);
        sb.append(", pageTotal=").append(pageTotal);
        sb.append(", rows=").append(rows);
        sb.append(", dataList=").append(dataList);
        sb.append('}');
        return sb.toString();
    }
}

创建一个List<String>集合

创建一个连接

根据连接创建一个操作对象,执行sql,sql语句有两个占位符,分别代表之前页所有数量,每页数量

操作对象返回结果集

将数据存到list中

关闭

java 复制代码
public List<String> getEmpName(int pageSize, int pageNum) throws Exception {
        List<String> list = new ArrayList<>();

        Connection connection = JDBCUtil.getConnection();

        PreparedStatement preparedStatement = connection.prepareStatement("select first_name from employees limit ?,?;");

        preparedStatement.setInt(1,pageSize*(pageNum-1));
        preparedStatement.setInt(2,pageSize);

        ResultSet resultSet = preparedStatement.executeQuery();

        while (resultSet.next()){
            list.add(resultSet.getString(1));
        }

        JDBCUtil.closeAll(connection,preparedStatement,resultSet);

        return list;


    }




@Test
    public void empLimitTest() throws Exception {
         List<String> empName = iEmpDao.getEmpName(3, 2);

         PageInfo<String> stringPageInfo = new PageInfo<>();

         stringPageInfo.setDataList(empName);
         stringPageInfo.setPageNum(2);
         stringPageInfo.setPageSize(3);
         stringPageInfo.setRows(107);
         stringPageInfo.setPageTotal(107/3);

         for (String s : empName) {
             System.out.print(s+" ");
         }

         System.out.println(stringPageInfo);
     }

创建PageInfo对象

PageInfo设置每页数量和第几页

创建连接

根据连接创建操作对象,执行sql

返回结果集

java 复制代码
public PageInfo<String> findNameAllByPage(int pageSize, int pageNum) {

        PageInfo<String> stringPageInfo = new PageInfo<>();

        stringPageInfo.setPageSize(pageSize);
        stringPageInfo.setPageNum(pageNum);
        List<String> list = new ArrayList<>();

        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
            connection = JDBCUtil.getConnection();
            preparedStatement = connection.prepareStatement("select count(*) from employees;");
            ResultSet resultSet = preparedStatement.executeQuery();

            if(resultSet.next()){
                //获取总条目数
                int rows = resultSet.getInt(1);

                //赋值共有多少行
                stringPageInfo.setRows(rows);

                //赋值共有多少页,取整
                stringPageInfo.setPageTotal(rows/pageSize);

            }

            /*
            * 跟上面一样获取一个list<string>
            * */
            stringPageInfo.setDataList(getEmpName(pageSize,pageNum));
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }


        return stringPageInfo;
    }


@Test
    public void limitTest(){
         PageInfo<String> nameAllByPage = iEmpDao.findNameAllByPage(4, 5);

         System.out.println(nameAllByPage);
     }
相关推荐
二哈喇子!1 小时前
MySQL数据更新操作
数据库·sql
二哈喇子!1 小时前
MySQL命令行导入数据库
数据库·sql·mysql·vs code
心动啊1211 小时前
SQLAlchemy 的使用
数据库
曾经的三心草3 小时前
redis-2-数据结构内部编码-单线程-String命令
数据结构·数据库·redis
二哈喇子!3 小时前
基于SSM框架的公交车查询系统的设计与实现
java·数据库·ssm
Coder_Boy_3 小时前
基于SpringAI的在线考试系统-智能考试系统-学习分析模块
java·开发语言·数据库·spring boot·ddd·tdd
阿杰 AJie3 小时前
MySQL 聚合函数总表(完整版)
数据库·mysql
玄同7653 小时前
Python「焚诀」:吞噬所有语法糖的终极修炼手册
开发语言·数据库·人工智能·python·postgresql·自然语言处理·nlp
cdut_suye3 小时前
解锁函数的魔力:Python 中的多值传递、灵活参数与无名之美
java·数据库·c++·人工智能·python·机器学习·热榜
尽兴-4 小时前
MySQL 8.0高可用集群架构实战深度解析
数据库·mysql·架构·集群·高可用·innodb cluster