【问题标题】:pagination in jspjsp中的分页
【发布时间】:2012-10-30 08:07:28
【问题描述】:

我有一个包含超过 3000 行结果集的查询。我使用迭代器来迭代每条记录。所以我必须减少系统的负载,我想最好的方法是在jsp中使用分页。如果有人有更好的主意,我会很高兴听到。像获取号码或类似的东西。 表示技术是struts。 如果您认为分页很好,请帮助我。

【问题讨论】:

标签: java html jsp struts


【解决方案1】:

查询数据库有限制,我的意思是把限制放在查询中,比如在第一页0 to 50。当请求第一页然后更改您的限制0+(50*1) to 50+(50*1) 和第 n 页它会像 0+(50*n) to 50+(50*n)

【讨论】:

  • 我不知道如何在数据库级别使用分页?
  • 致 Quoi:如何在查询中使用限制?它是否在不同的页面中返回结果?
  • 您只需要改进您的查询。 选择需要什么。
  • 您使用的是哪个数据库?
  • 致Russell Gutierrez:查询是正确的;想象一下,我已经加载了所有未读的电子邮件,但显示在单独的页面中以减少应用程序服务器的负载
【解决方案2】:

分页是个好主意。但是,您应该记住,您不仅需要让它发挥作用,而且还必须了解其目的。

实现分页。但是,如果您实现了分页,但 仍然 获取相同数量的行,那么您的目的就落空了。您还应该改进您的查询。您应该获取准确行数,以便在分页中的单个页面中显示准确个条目。这样,您的应用程序服务器和数据库服务器都将受益于您的实施。

【讨论】:

  • 这可能是真的,但也可能是错误的。获取 3000 行的数据库查询可能非常快,特别是如果 Web 服务器和数据库位于同一位置,主要的性能问题可能是由于这 3000 行在 Internet 上的传输,而这 3000 行的显示浏览器。
  • @JBNizet 这就是为什么他应该只查询需要的内容。例如,如果分页是每页 20 个条目,使用诸如 SELECT * from table where rownum > 1 and rownum < 21; 之类的查询(例如)将通过 Internet 传输的内容只有 20 行。同样,显示这个最小行数应该不是问题。
  • 假设我必须加载所有电子邮件,我该怎么办?我认为最好的方法是分页。因为我必须加载所有电子邮件,但要在不同的页面中显示它们。
  • 你没明白我的意思。如果 SQL 查询没有任何性能问题,但代价高昂的是通过 Internet 传输 3000 行 HTML 行,他可以很好地保留数据库访问代码,并在内存中分页(即生成从 JSP 中的数据库检索的行列表)。例如,这就是 displaytag 默认执行的操作。
  • @JBNizet 我在数据库中运行了查询,它很快就返回了结果,但是当它要在 jsp 中显示时,会消耗很多时间。我认为不使用分页会导致问题。你同意吗?
【解决方案3】:

在jsp中对结果集进行分页解决了问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多