hbase列表分页

本文介绍了在HBase中实现分页查询的具体方法,包括使用PageFilter进行分页及通过lastRow缓存机制来处理多用户环境下的分页查询问题。

HBase的分页实现相对复杂一些。核心思想是结合分页过滤器PageFilter(pageSize)和查询设置开始行scan.setStartRow(lastRow),lastRow为上一次查询rowkey,需要注意的是该rowkey是一个数组,对应多字段的存储位置;

不同用户登录会产生不同lastRow,因此我们把lastRow存储到session中,参考PageLastRowCache

      为了解耦,我们又把对lastRow操作封装到HBaseDaoImpl,以便开发写代码的时候不需要关心lastRow的操作。

public PageInfo searchXControl(QueryControlRuleQO qo,IntegerpageSize,Integer currteIndex) throwsException {

       //条件过滤器

       FilterList filterList = new QueryControlRuleFilterList(qo).getFilterList();

       //获得符合条件结果总数

       Long total = getTotal(controlTableName, filterList);

       //过滤器集合

       FilterList fl=new FilterList();

       //分页过滤器

       Filterfilter = new PageFilter(pageSize);

       fl.addFilter(filterList);

       fl.addFilter(filter);

        //封装结果集

       List<XControl> list = getList(XControl.classcontrolTableName, fl, currteIndex);

      

        log.info("--------------------- total : " + list.size());

        //返回结果集

      PageInfo page = new PageInfo(total, list);

        return page;

    }


更多精彩内容请关注:http://bbs.superwu.cn

关注超人学院微信二维码:

关注超人学院java免费学习交流群:

转载于:https://my.oschina.net/crxy/blog/424356

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值