[ECSide] 关于数据库分页的求助

tuxue 2007-04-04
我是个java初学者,现在用的是oracle,不知道如何改写类才能使用数据库端分页的功能,有哪位仁兄作过的可否指教一下,非常感谢
bruce198 2007-04-04
import java.util.HashMap;
import java.util.Map;


public class DisPage{
private int totalRows;
private int startIndex;
private int pageRowsNum;
private int totalPages;
private int currentPage;
private int endIndex;

public void init(int currentPage,int totalRows,int numPerPage){
setPageRowsNum(numPerPage);
setCurrentPage(currentPage);
setTotalRows(totalRows);
setTotalPages();
setStartIndex();
setEndIndex();
}

/**
* 设置当前页,当给定当前页小于0时,当前页设为1
*/
public void setCurrentPage(int currentPage) {
if(currentPage<1)this.currentPage=1;
else this.currentPage = currentPage;
}

public int getCurrentPage(){
return this.currentPage;
}

public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}

public int getTotalRows() {
return totalRows;
}

/**
*���÷� 设置分页的开始下标。
*/
public void setStartIndex() {
this.startIndex = (this.currentPage - 1) * pageRowsNum;

}

public int getStartIndex() {
return startIndex;
}

/**
*������ 设置总页数,当给定当前页大于总页数,并且总页数不为0,当前页设置为总页数大小。
*/
public void setTotalPages() {
if(totalRows % pageRowsNum == 0){
this.totalPages = totalRows / pageRowsNum;
}
else{
this.totalPages = (totalRows / pageRowsNum) + 1;
}
if(this.currentPage>this.totalPages&&this.totalPages!=0)this.currentPage = this.totalPages;
}

public int getTotalPages() {
return totalPages;
}

public void setPageRowsNum(int pageRowsNum) {
this.pageRowsNum = pageRowsNum;
}

/**
* 获得分页结束下标,
*
*/
public void setEndIndex() {
if( totalRows < pageRowsNum){
this.endIndex = totalRows;
}
else if((totalRows % pageRowsNum == 0) || (totalRows % pageRowsNum != 0 && currentPage < totalPages)){
this.endIndex = currentPage * pageRowsNum;
}else if(totalRows % pageRowsNum != 0 && currentPage == totalPages){
this.endIndex = totalRows ;
}
}

public int getEndIndex() {
return endIndex;
}

public int getPageRowsNum() {
return pageRowsNum;
}
}
tuxue 2007-04-04
谢谢楼上的,编译没问题,不过在ec的jsp页面里如何应用呢?
fins 2007-04-04
看一下EC里的例子吧
EC里的
那个ACTION 和 DAO就是数据库分页的例子
tuxue 2007-04-04
例子看了,dao里面是静态的,而且不是oracle的,action应该接受sql语句,然后才能计算出来,我就是不太明白怎么样去动态将sql传递给action,然后调用,哎,java没学多久,烂啦
Global site tag (gtag.js) - Google Analytics