⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pageable.java

📁 在学校做的第一个jsp专周论坛,用了些ajax技术.
💻 JAVA
字号:
/*
 * 创建日期 2005-8-22
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package com.tools;

import java.sql.*;

/**
 * @author ligang
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class Pageable {
	
	 private int pageSize;

	    // 结果集的总行数
	    private int totalRows;

	    // 结果集的总页数
	    private int totalPages;

	    // 当前页
	    private int currentPage;

	    // 数据库游标指向的行
	    private int rowsCount;

	    // 构造函数
	    public Pageable(ResultSet rs) {
	        try {
	            // 将数据库游标指向结果集的最后
	            rs.last();
	        } catch (SQLException e) {
	            e.printStackTrace();
	        }
	        try {
	            // 得到结果集的总行数
	            this.setTotalRows(rs.getRow());
	        } catch (SQLException e1) {
	            e1.printStackTrace();
	        }
	        try {
	            // 将数据库游标指向结果集的最前
	            rs.beforeFirst();
	        } catch (SQLException e2) {
	            e2.printStackTrace();
	        }
	    }

	    /**
	      设置分页大小
	     */
	    public void setPageSize(int pageSize) {
	        if (pageSize >= 0) {
	            this.pageSize = pageSize;
	        } else {
	            this.pageSize = 1;
	        }

	        this.setTotalPages();
	    }

	    /**
	      转到指定页
	     */
	    public void gotoPage(int page,int cupage) {
	        System.out.println("cupagesajkashkkjsfadhfdjkasdjk:"+cupage);
	        switch (page) {
	        case -1:
	            // 如果转向首页,则将当前页置为第1页
	            this.setCurrentPage(1);
	        
	            break;
	        case -2:
	            // 如果转向上一页,则将当前页上移一页
	        	
	        	//int t = this.getCurrentPage();
	        	// System.out.print("ttttt:"+t);
	            this.setCurrentPage(cupage - 1);
	        

	           
	            break;
	        case -3:
	            // 如果转向下一页,则将当前页下移一页
	        	
	        	//int n = this.getCurrentPage();
	        	 //System.out.print("nnnnn:"+n);
	            this.setCurrentPage(cupage + 1);
	        	
	            
	            break;
	        case -4:
	            // 如果转向尾页,则将当前页转到与总页数相符的页
	            this.setCurrentPage(this.getTotalPages());
	        	
	            break;
	        default:
	            // 如果转向其他页,则将当前页置为相应的页数
	            this.setCurrentPage(page);
	        	
	       
	        }
	    }

	    /**
	     * 设置当前页
	     */
	    public void setCurrentPage(int page) {
	    	System.out.println("pageppppppppppppppppppppp:"+page);
	        // 如果页号为0或者负数时,则当前页为第1页
	        if (page <= 0)
	        {
	            this.currentPage = 1;
	            System.out.println("页面太小:"+this.currentPage);
	        }
	            // 如果页号大于实际总页数时,当前页为总页数
	        else
	        if (page > this.getTotalPages()){
	            this.currentPage = this.getTotalPages();
	            System.out.println("页面太大:"+this.currentPage);
	        }
	        // 在其他情况下,当前页置为给定的页号
	        else
	        {
	            this.currentPage = page;
	            System.out.println("页面正好:"+this.currentPage);
	        }
	        // 设置数据库游标指向位置
	        if(this.getTotalPages()==0){
	        	this.setRowsCount(0);
	        }else
	        {
	            this.setRowsCount((this.currentPage -1) * this.getPageSize() + 1);
	            System.out.println((this.currentPage -1) * this.getPageSize() + 1);
	        }
	        System.out.println("beginrow:"+this.getRowsCount());
	    }

	    /**
	      返回当前页的记录条数
	     */
	    public int getCurrentPageRowsCount() {
	        if (this.getPageSize() == 0)
	            return this.getTotalRows();
	        if (this.getTotalRows() == 0)
	            return 0;
	        if (this.getCurrentPage() != this.getTotalPages())
	            return this.getPageSize();

	        return this.getTotalRows() - (this.getTotalPages() - 1)
	                * this.getPageSize();
	    }

	    /**
	      返回分页大小
	     */
	    public int getPageSize() {
	        return this.pageSize;
	    }

	    /**
	      返回总记录行数
	     */
	    public int getTotalRows() {
	        return totalRows;
	    }

	    /**
	      设置总记录行数
	     */
	    public void setTotalRows(int totalRows) {
	        this.totalRows = totalRows;
	    }

	    /**
	      返回游标指向行的位置
	     */
	    public int getRowsCount() {
	        return rowsCount;
	    }

	    /**
	      设置游标指向行的位置
	     */
	    public void setRowsCount(int rowsCount) {
	        this.rowsCount = rowsCount;
	    }

	    /**
	      返回当前页号
	     */
	    public int getCurrentPage() {
	        return currentPage;
	    }

	    /**
	      返回总页数
	     */
	    public int getTotalPages() {
	        return this.totalPages;
	    }

	    /**
	      设置总页数
	     */
	    public void setTotalPages() {
	        if (this.getTotalRows() == 0) {
	            this.totalPages = 0;
	        } else if (this.getPageSize() == 0) {
	            this.totalPages = 1;
	        } else {
	            if (this.getTotalRows() % this.getPageSize() != 0)
	                this.totalPages = this.getTotalRows() / this.getPageSize() + 1;
	            else
	                this.totalPages = this.getTotalRows() / this.getPageSize();
	        }
	    }

	    /**
	      转到当前页的第一条记录
	     */
	    public void pageFirst() throws java.sql.SQLException {
	        this.setRowsCount((this.getCurrentPage() - 1) * this.getPageSize() + 1);
	    }

	    /**
	      转到当前页的最后一条记录
	     */
	    public void pageLast() throws java.sql.SQLException {
	        this.setRowsCount((this.getCurrentPage() - 1) * this.getPageSize()
	                + this.getCurrentPageRowsCount());
	    }
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -