【问题标题】:Fetching records from database in chunks [duplicate]以块的形式从数据库中获取记录[重复]
【发布时间】:2018-03-27 13:48:27
【问题描述】:

我的 Java Web 应用程序正在从数据库 (DB2) 中检索大型数据集并在网页上显示记录。 由于记录的数量很大,页面加载需要一点时间(大约15秒) 为了改善这一点,我想在服务器端实现分页,即一次只获取 50 条记录并在页面上显示。 然后当用户点击 Next 时,接下来的 50 条记录被获取并显示出来。

我已经在客户端实现了这一点,即我以 50 的块显示数据,但我仍在一次数据库调用中获取整个数据,因此页面需要时间加载。

如何在服务器端实现分页,即一次只获取 50 条记录?

提前致谢。

【问题讨论】:

  • JDBC还有fetch size的概念——Statement.setFetchsize和驱动的fetchSize属性。
  • @RobWilson JDBC 提取大小不是 OP 想要的。 JDBC fetch size 提示驱动程序以 (fetch size) 行为单位获取行,但它仍会检索所有行。

标签: java sql rest db2


【解决方案1】:

使用LIMITOFFSET。在您的客户端代码中,跟踪您想要的当前偏移量。在这种情况下,LIMIT 将是 50,OFFSET 将是 50 的某个倍数。

Select * From MY_TABLE ORDER BY XYZ LIMIT 50 OFFSET 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2011-05-29
    • 2013-01-27
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多