java 分页读取数据[通俗易懂]

java 分页读取数据[通俗易懂]/***查询总条数*@return*/publicLongquerySize(){Connectionconn=null;PreparedStatementstmt=null;ResultSetrs=null;Stringsql=”se…


Jetbrains全系列IDE稳定放心使用

    /**
     * 查询总条数
     * @return
     */
    public Long querySize() {
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        String sql = " select count(*) as num from compare; ";
        Long size = 0L;
        try {
            conn = DBHelper.getConnection();
            stmt = conn.prepareStatement(sql);
            rs = stmt.executeQuery();
            while (rs.next()) {
                size = rs.getLong("num");
            }
            return size;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            if (rs != null) {
                try {
                    rs.close();
                    rs = null;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                    stmt = null;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /**
     * @param pageNo   表示第几页
     * @param pageSize 表示每页的数量
     * @return
     */
    public List<String> query(int pageNo, int pageSize) {
        //计算起始值,比如假如每页条数为5,第一页是0 - 4,第二页是5 - 9;。。。。
        int pageStart = (pageNo - 1) * pageSize;
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        String sql = " select * from compare limit ?,?; ";
        List<String> mapList = new ArrayList<String>();
        try {
            conn = DBHelper.getConnection();
            stmt = conn.prepareStatement(sql);
            //把参数设置到 ?号里面
            stmt.setInt(1, pageStart);
            stmt.setInt(2, pageSize);
            rs = stmt.executeQuery();
            while (rs.next()) {
                mapList.add(rs.getString("id"));
            }
            return mapList;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            if (rs != null) {
                try {
                    rs.close();
                    rs = null;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (stmt != null) {
                try {
                    stmt.close();
                    stmt = null;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
import java.sql.Connection;
import java.sql.DriverManager;

public class DBHelper {
	
	private static final String driver = "com.mysql.jdbc.Driver";//数据库驱动
	private static final String url = "jdbc:mysql://localhost:3306/gumysql?useUnicon=true&characterEncoding=UTF-8";
	private static final String username = "root";
	private static final String password = "root";
	
	static
	{
		try 
		{
			Class.forName(driver);
		}
		catch (Exception e)
		{
			
			e.printStackTrace();
		}
	}
	
	private static Connection conn = null;
	//单例模式返回数据库连接
	public static Connection getConnection() throws Exception
	{
		if(conn == null)
		{
			conn = DriverManager.getConnection(url, username, password);
			return conn;
		}
		else
		{
			return conn;
		}
	}
}

 

import java.util.ArrayList;
import java.util.List;

public class Bootstrap {

    public static void main(String args[]){
        ReadDBPage read = new ReadDBPage();

        //查询数据库中总条数
        Long allSize = read.querySize();

        System.out.println("数据库中总数为:"+ allSize +" 条");

        List<String> allList = new ArrayList<String>();

        int pageSize = 5;//定义每页的条数

        //计算循环次数,即总页数  Math.ceil为向上取整
        int pages = (int) Math.ceil(allSize/(pageSize*1.0));
        System.out.println("总页数为:"+ pages +" 页");

        for(int i=1;i<=pages;i++){
            List<String> onePageList = read.query(i,pageSize);
            allList.addAll(onePageList);
            System.out.println("第"+ i +"页的数据为:"+ onePageList);
        }

        System.out.println("总数据为:"+ allList);
    }
}

推荐一个公众号

java 分页读取数据[通俗易懂]

号主为一线大厂架构师,CSDN博客专家,博客访问量突破一千万。主要分享Java、golang架构,源码,分布式,高并发等技术,用大厂程序员的视角来探讨技术进阶、面试指南、职业规划等。15W技术人的选择!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186431.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 女生学java_女生到底适不适合学Java-Fun言

    女生学java_女生到底适不适合学Java-Fun言随着女性越来越独立,我们可以看到再以前我们认为不适合女性朋友从事的工作,也出现了越来越多的女生,例如对IT行业也不再跟之前一样畏惧。虽然当下很多人所持的观点依旧是,女生不适合IT行业,但是很多女生已经在IT行业中崭露头角,成为IT行业中的中坚力量。越来越多的女生有志于从事IT行业,很多女生选择学Java,那么女生学习Java到底有没有优势呢?怎么说呢,女生学习Java有时候比男生更占优势!具体表现…

    2022年7月7日
  • mapreduce过程

    mapreduce过程

    2021年7月16日
  • Pytest(13)命令行参数–tb的使用

    Pytest(13)命令行参数–tb的使用前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

    2022年7月29日
  • C#中FileStream与StreamReader/StreamWriter区别

    C#中FileStream与StreamReader/StreamWriter区别FileStreamFileStream类不是静态类,表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。使用时需要创建对象,FileStream类既可以对文本文件进行读也可以对多媒体文件进行写,以字节数组的形式进…

    2022年7月21日
  • 一些sql二

    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a&#

    2021年12月25日
  • WPF布局之WrapPanel与StackPanel

    WPF布局之WrapPanel与StackPanel转载:https://www.cnblogs.com/Im-Victor/p/10565030.html三.WrapPanelWrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够是就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行。Orientation——根据内容自动换行。当Horizontal选项看上去类似于Windows资源管理器的缩略图视图:元素是从左向右排列的,然后自上至下自动换行。Vertical选项看上去类似于Windows资源..

    2022年7月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号