?? pageable.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 + -