我有一个ArrayList
的Book
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/