使用 jdbcTemplate 进行分页
Posted
技术标签:
【中文标题】使用 jdbcTemplate 进行分页【英文标题】:Paging with jdbcTemplate 【发布时间】:2013-01-23 04:34:17 【问题描述】:我们现在面临的一个问题是处理我们从数据库中获得的大 ResultSet 的分页。
当前 SQL 存储过程返回的行调用 jdbcTemplate.query
范围从 100K 到 300K 并且分页在 extractData
方法内完成。
在用户中显示的页面只有 20 行。
这很慢,有没有办法使用jdbcTemplate
从存储过程的结果中获取一页数据。
【问题讨论】:
【参考方案1】:你可以看看this
一个很好的例子。
【讨论】:
【参考方案2】:我相信 JdbcTemplate 没有特定的分页功能。但是,即使这样做也可能无法帮助您的代码运行得更快。
通常,面向用户的页面的大小不超过 200 行,因此查询 100-300K 行似乎过多并浪费大量内存。
您需要首先决定使用哪种分页策略。两种常见的策略是查询前 N 个页面,并将其存储在临时缓存中 - 或者仅查询足以填充一个页面大小(例如:200 行),并且仅在用户请求时才查询接下来的 200 行。
您还需要确定缓慢的真正原因是什么。行大小是一个因素,但不是唯一因素。您必须分析您的架构结构、索引、查询连接等。
请记住,在正常使用情况下 - 尽管您可以向用户展示多达 10000 个页面,但典型用户不太可能浏览所有这些页面 - 可能只有前 5-10 个页面很重要 - 因此如果可以的话,将结果集限制在一个小数字会更有意义
【讨论】:
用户显示的页面只有20行。以上是关于使用 jdbcTemplate 进行分页的主要内容,如果未能解决你的问题,请参考以下文章