栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

分页在java中?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分页在java中?

通常,您希望数据库为分页和排序工作繁重。例如,使用MySQL,您可以通过添加以下内容按日期对结果页面进行排序

ORDER BY date ASC LIMIT 5,5

到SQL查询的末尾。如果您使用休眠模式,则可以使用标准API以独立于供应商的方式执行此操作:

List<MyDomainClass> results = (List<MyDomainClass>) getSession()     .createCriteria(MyDomainClass.class).setFirstResult(5).setMaxResults(5).addOrder(Order.asc("date")).list();

要显示分页导航,您还需要计算结果总数以知道有多少页:

int count = (int) getSession()     .createCriteria(MyDomainClass.class).setProjection(Projections.rowCount()).list().get(0);

您可以为两个搜索添加限制,例如,当您要过滤姓氏时,可以添加:

.add(Restrictions.eq("lastname", "Smith")

(这需要同时添加到计数查询和列表查询中)。

当您知道结果总数,页面大小和当前页数时,您可以计算出结果范围,如下所示:

// TODO: execute the count query here to determine totalResultsint totalPages = Math.ceil(totalResults / pageSize);// show first page by defaultint firstResult = 0;if (currentPage >= 0 && currentPage < totalPages) {    firstResult = currentPage * pageSize;    }// the number of items might be less than the page size (i.e. on the last page)int count = Math.min(pageSize, totalResults - firstResult);        // TODO: execute the list query here to get a page of data

显示导航的方式由您决定。一些框架为此具有标准组件。否则,您将不得不考虑一种处理大量页面的方法。一种常见的方法是显示例如10个页码的范围,以及向前/向后跳转以开始/跳转到结束链接。

希望这可以帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506299.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号