求教分页查询的问题。

发布于 2021-11-23 08:57:39 字数 1935 浏览 705 评论 11

我最近对分页查询,具体怎么运用产生了兴趣并遇到了困惑,希望大神帮忙点拨一下。
public List queryForList(String id, Object paramObject, int skip, int max) throws SQLException
看参数skip和max是做分页查询用的 
譬如我要查询的内容有ID、HAPPENEDTIME、STATE,在一张表里,DB2数据库。
查询条件paramObject有起止时间startTime、endTime等要素。
(例如:SELECT a.ID,a.HAPPENEDTIME,a.STATE FROM LAW_DATA_ROW_INFO a WHERE a.HAPPENEDTIME <= TIMESTAMP('2014-10-31 00:00:00.0') and a.HAPPENEDTIME >= TIMESTAMP('2014-10-01 00:00:00.0'))
如果在这段时间内的记录有100多条,要查出第11条至15条。
我设置参数skip=11、max=5,从第11条数据开始取,取出5条数据。

这个查询过程具体是怎么样的?
小弟愚笨(暂时还写不出分页查询SQL ,还无法灵活运用)。
首先我猜想应该不可能全查出来,再取出第11条至25条 返回吧?
然后我想到可能是查出结果集, 取出第11条至25条?
com.ibatis.sqlmap.engine.execution.SqlExecutor.
private void handleResults(StatementScope statementScope, ResultSet rs, int skipResults, int maxResults, RowHandlerCallback callback)
        throws SQLException
    {
        ResultMap resultMap;
        int i;
        statementScope.setResultSet(rs);
        resultMap = statementScope.getResultMap();
        if(resultMap == null)
            break MISSING_BLOCK_LABEL_128;
        if(rs.getType() != 1003)
        {
            if(skipResults > 0)
                rs.absolute(skipResults);//我看到这一句,有点明白了:移动结果集的记录指针到第skipResults行
            break MISSING_BLOCK_LABEL_73;
        }


......


那分页查询是直接SQL分页,还是用ResultSet接口的absolute移动指针到第N条记录好呢?


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

緦唸λ蓇 2021-11-30 06:20:24

sql分页才是真正的物理数据库层面的分页。你所说的结果及再分页算是逻辑上的分页。

分页主要是为了解决查询结果集太多造成的IO瓶颈,影响数据库查询效率的问题。

心欲静而疯不止 2021-11-30 06:19:11

没用过db2

叹沉浮 2021-11-30 05:50:34

参考一下hibernate的分页查询语句组装代码就可以知道了

白龙吟 2021-11-30 05:17:42

hibernate分页好简单

本王不退位尔等都是臣 2021-11-30 04:55:43

明天给你个高大上的sql分页查询语句

绝影如岚 2021-11-30 04:10:28

回复
DB2

眼眸 2021-11-30 01:52:23

这样的sql语句不就可以分页了吗

可是我不能没有你 2021-11-30 01:37:34

回复
select * from (select 字段1,字段2,字段3,字段4,字段5,rownumber() over(order by 排序字段 asc ) as rowid from 表名 )as a where a.rowid >= startPage AND a.rowid <endPage

眉黛浅 2021-11-30 00:16:22

回复
谢谢哥!我看明白了。

静谧 2021-11-29 03:05:27

回复
客气了,共同学习

躲猫猫 2021-11-28 04:20:42

SQL分啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文