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 小时前
macos安装mongodb
数据库·mongodb·macos
万事大吉CC2 小时前
mysql单表查询·3
数据库·mysql
bin91533 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
Miqiuha3 小时前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐4 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
Java探秘者8 小时前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
2301_786964368 小时前
3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例
java·大数据·数据库·分布式·hbase
苹果醋38 小时前
大模型实战--FastChat一行代码实现部署和各个组件详解
java·运维·spring boot·mysql·nginx
阿维的博客日记9 小时前
图文并茂解释水平分表,垂直分表,水平分库,垂直分库
数据库·分库分表
wrx繁星点点10 小时前
事务的四大特性(ACID)
java·开发语言·数据库