[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没学多久,烂啦
|