📄 pageable.java
字号:
package com.logistic.business;
import java.sql.*;
public class PageAble {
private int pagesize; //定义每页显示记录行数
private int totalrow; //结果集的总行数
private int totalpage; //结果集的总页数
private int currentpage; //当前页
private int rowscount; //数据库游标指向的行
public PageAble(ResultSet rs){ //构造函数
try{
rs.last(); //将数据库游标指向结果集的最后
}catch(SQLException se1){
se1.printStackTrace();
}
try{
this.setTotalrow(rs.getRow()); //得到结果级的总行数
System.out.println("结果集的总行数:"+this.getTotalrow());
}catch(SQLException se2){
se2.printStackTrace();
}
try{
rs.beforeFirst(); //将数据库游标指向结果集的最前
}catch(SQLException se3){
se3.printStackTrace();
}
}
/**
* @return currentpage
*/
public int getCurrentpage() { //返回当前页号
return currentpage;
}
/**
* @param currentpage 要设置的 currentpage
*/
public void setCurrentpage(int currentpage) { //设计当前页
if(currentpage<0){ //当页号为0或者负数时,则当前页为第一页
this.currentpage=1;
}
if(currentpage>this.getTotalpage()){ //当页号大于实际总页数时,当前页为总页数
this.currentpage=this.getTotalpage();
}else{
this.currentpage=currentpage; //其它情况下,当前页设置为给定的页号
// 设置数据库游标指向位置
this.setRowscount((this.currentpage-1)* this.getPagesize() + 1);
System.out.println("当前数据库游标指向:"+this.getRowscount());
}
}
public int getCurrentPageRowsCount(){ //返回当前页的记录条数
if(this.getPagesize()==0){
return this.getTotalrow();
}
if(this.getTotalrow()==0){
return 0;
}
if(this.getCurrentpage()!=this.getTotalpage()){
return this.getPagesize();
}else{
return this.getTotalrow()-(this.getTotalpage()-1)*this.getPagesize();
}
}
/**
* @return pagesize
*/
public int getPagesize() { //返回分页大小
return pagesize;
}
/**
* @param pagesize 要设置的 pagesize
*/
public void setPagesize(int pagesize) { //设置分页大小
if(pagesize>=0){
this.pagesize=pagesize;
}else{
this.pagesize=1;
}
this.setTotalpage();
}
public void gotoPage(int page){ //转到指定页
switch(page){
case-1: //如果转向首页,则将当前页置为第一页
this.setCurrentpage(1);
break;
case-2: //如果转向上一页,则当前页上移一页
if(this.getCurrentpage()==1){
this.setCurrentpage(1);
}else{
this.setCurrentpage(this.getCurrentpage()-1);//如果当前有多页,上一页为当前页减一
}
break;
case-3: //如果转向下一页,则当前页下移一页
if(this.getCurrentpage()==this.getTotalpage()){ //如果当前有多页,下一页为当前页加一
this.setCurrentpage(this.getTotalpage());
}else{
this.setCurrentpage(this.getCurrentpage()+1);
}
break;
case-4: //如果转向尾页,则将当前页转到与总页数相符的页
System.out.println("总页数:"+this.getTotalpage());
this.setCurrentpage(this.getTotalpage());
break;
default:
this.setCurrentpage(page);
}
}
/**
* @return rowscount
*/
public int getRowscount() { //返回游标指向行的位置
return rowscount;
}
/**
* @param rowscount 要设置的 rowscount
*/
public void setRowscount(int rowscount) { //设置游标指向行的位置
this.rowscount = rowscount;
}
/**
* @return totalpage
*/
public int getTotalpage() { //返回总页数
return totalpage;
}
/**
* @param totalpage 要设置的 totalpage
*/
public void setTotalpage() { //设置总页数
if(this.getTotalrow()==0){
this.totalpage=0;
}else if(this.getPagesize()==0){
this.totalpage=1;
}else{
if(this.getTotalrow()%this.getPagesize()!=0){
this.totalpage=this.getTotalrow()/this.getPagesize()+1;
}else{
this.totalpage=this.getTotalrow()/this.getPagesize();
}
}
}
/**
* @return totalrow
*/
public int getTotalrow() { //返回总记录行数
return totalrow;
}
/**
* @param totalrow 要设置的 totalrow
*/
public void setTotalrow(int totalrow) { //设置总记录行数
this.totalrow = totalrow;
}
public void pageFist() 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 + -