java - 决定不使用 SQL 的图书列表分页策略

标签 java pagination arraylist

我有一个ArrayListBook s 从不同的 Merchant 中拉出并根据用户偏好、价格或客户评论在 Java 中排序:

List<Book> books = new ArrayList<Book>();

这要求我始终将大量数据作为 Java 对象存储在内存中。现在我需要将此数据分页到跨越多个网页的列表中,并允许用户单击编号的页面链接以跳转到该数据段,那么执行此操作的最佳方法是什么?

我的想法是每页列出 25 本书,而不是使用将表单数据提交为 GET 的超链接。请求 URL 参数时,页码超链接将简单地重新提交表单,将请求的页码作为附加表单传递 POST参数。

<input type="hidden" id="pageNumber" value="0">
<a href="#" onClick="pageNumber=5; this.form.submit()">Page 5</a>

在这种情况下,第 5 页只是一组 25 条记录,从 ArrayList 中的第 125 条 (5 * 25) 条记录开始。并结束于 ArrayList 中的第 149 条记录。

有更好的方法吗?

最佳答案

重构您的应用程序,让例如Hibernate 从底层数据库中提取数据。

Hibernate 可以完成所有排序和分页,而无需您始终将其全部保存在内存中。

关于java - 决定不使用 SQL 的图书列表分页策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3710771/

相关文章:

java - Swagger 与 Play2 集成

javascript - 具有单个 sql 查询的 PHP 分页

Java GUI 与 Arraylist

Javascript重写数组

java - 如何将ArrayList发送到BaseAdapter Android

java - 静态类/接口(interface)的 Guice 泛型配置错误

java - SessionAttributes 导致多个选项卡出现问题

Java泛型使用错误

php - Joomla分页列表限制值

javascript - Scrapy 与 Javascript 分页