如何用java实现分页效果(eclipse工具)

如何用java实现分页效果(eclipse工具),第1张

package dlwsxxbase;

public class Pager {

private int totalRows; // 总行数

private int pageSize; // 每页显示的行数

private int currentPage; // 当前页号

private int totalPages; // 总页数

private int startRow; // 当前页在数据库中的起始行

private int pageStartRow; // 当前页开始行

private int pageEndRow; // 当前页结束行

private int hasNextPage; // 下一页存在标识[0:不存在,1:存在]

private int hasPreviousPage; // 前一页存在标识[0:不存在,1:存在]

public Pager() {

}

public Pager(int _totalRows,int _pageSize) {

pageSize = _pageSize;

totalRows = _totalRows;

totalPages = totalRows / pageSize;

int mod = totalRows % pageSize;

if (mod > 0) {

totalPages++;

}

currentPage = 1;

startRow = 0;

}

public int getStartRow() {

return startRow;

}

public int getpageStartRow() {

return pageStartRow;

}

public int getpageEndRow() {

return pageEndRow;

}

public int getTotalPages() {

return totalPages;

}

public int getCurrentPage() {

return currentPage;

}

public int getPageSize() {

return pageSize;

}

public int getHasNextPage() {

return hasNextPage;

}

public int getHasPreviousPage() {

return hasPreviousPage;

}

public void setTotalRows(int totalRows) {

thistotalRows = totalRows;

}

public void setStartRow(int startRow) {

thisstartRow = startRow;

}

public void setPageStartRow(int pageStartRow) {

thispageStartRow = pageStartRow;

}

public void setPageEndRow(int pageEndRow) {

thispageEndRow = pageEndRow;

}

public void setTotalPages(int totalPages) {

thistotalPages = totalPages;

}

public void setCurrentPage(int currentPage) {

thiscurrentPage = currentPage;

}

public void setPageSize(int pageSize) {

thispageSize = pageSize;

}

public void setHasNextPage(int hasNextPage) {

thishasNextPage = hasNextPage;

}

public void setHasPreviousPage(int hasPreviousPage) {

thishasPreviousPage = hasPreviousPage;

}

public int getTotalRows() {

return totalRows;

}

public void first() {

currentPage = 1;

startRow = 0;

pageStartRow = startRow + 1;

thishasFlagSet(currentPage, totalPages);

if (thishasNextPage == 0) {

pageEndRow = totalRows;

} else {

pageEndRow = startRow + pageSize;

}

}

public void previous() {

if (currentPage == 1) {

return;

}

currentPage--;

startRow = (currentPage - 1) pageSize;

pageStartRow = startRow + 1;

thishasFlagSet(currentPage, totalPages);

if (thishasNextPage == 0) {

pageEndRow = totalRows;

} else {

pageEndRow = startRow + pageSize;

}

}

public void next() {

if (currentPage < totalPages) {

currentPage++;

}

startRow = (currentPage - 1) pageSize;

pageStartRow = startRow + 1;

thishasFlagSet(currentPage, totalPages);

if (thishasNextPage == 0) {

pageEndRow = totalRows;

} else {

pageEndRow = startRow + pageSize;

}

}

public void last() {

currentPage = totalPages;

startRow = (currentPage - 1) pageSize;

pageStartRow = startRow + 1;

thishasFlagSet(currentPage, totalPages);

if (thishasNextPage == 0) {

pageEndRow = totalRows;

} else {

pageEndRow = startRow + pageSize;

}

}

public void refresh(int _currentPage) {

currentPage = _currentPage;

if (currentPage > totalPages) {

last();

}

thishasFlagSet(currentPage, totalPages);

}

private void hasFlagSet(int currentPage, int totalPages) {

if (currentPage == totalPages) {

if (currentPage == 1) {

thishasPreviousPage = 0;

thishasNextPage = 0;

} else {

thishasPreviousPage = 1;

thishasNextPage = 0;

}

} else {

if (currentPage == 1) {

thishasPreviousPage = 0;

thishasNextPage = 1;

} else {

thishasPreviousPage = 1;

thishasNextPage = 1;

}

}

}

}

这是我的工程里的分页核心代码,希望对你有用,还有ssh分页文档,可以参照研究一下。

实际上分页的处理原则是:

每一次点击下一页或者最后一页都是一次请求,只不过每次请求的参数不同,参数为页数和每页多少条数据。

当后台接受到请求时,根据参数写出你需要返回的结果(SQL),这个结果就是你当前分页的数据。

说白了,分页就是根据页数和每页多少条数据去写SQL,SQL返回的结果就是分页的数据。这么说LZ理解了伐?

分页的实现可分为两大类相信你也懂得这个,一、数据在Java代码中进行分页,然后取得当前页数据;二、在数据库中直接取得当前页数据。

通常面试官都希望听到后者,因为那才是高效的方法。你如果想让面试官觉得你的能力高的话你就先否定他的问题,你可以回答说:“Java中根本不需要做分页的实现代码只管拿数据库中的当前页数据即可,数据分页功能应该交由SQL处理,在分页实现中Java最多只实现总页数的计算,除此以外几乎不用管。”如果你这么答的话面试官通常会问你总页数的算法,至于这个你可以网上找个高效点的方法,我现在知道最高效的就是:(数据总行数+每页数据行数-1)/每页数据行数。

算法可能有更高效的,你可以到网上找找。记住只在面试中才能这么答,笔试的话老老实实写出实现方法。否定面试官的问题会让他觉得你更professional,但不要太嚣张不然适得其反的。

通常面试如果他狂问我代码实现的话我都会要回简历走人,因为他们需要的只是一个Coder。

数据库 分页的查询语句为 select top pageSize from objectTable obj where objid not in(select top (pageNumber-1)pageSize id from objectTable) 然后将查询结果放到一个List集合中 返回回去。在页面进行显示就可以了。但注意的是页面要控制好当前页码。 pageSize: 每页显示的信息条数、pageNumber:当前页码

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何用java实现分页效果(eclipse工具)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情