zoukankan      html  css  js  c++  java
  • Hbase API 多条件查询

    public static ResultScanner scan(String tableName, String family, List<String> columns, List<String> patterns) throws IOException {
            Connection connection = connHolder.get();
            Table table = connection.getTable(TableName.valueOf(tableName));
            Scan scan = new Scan();
    
            //过滤器列表
            FilterList list = new FilterList(FilterList.Operator.MUST_PASS_ONE);
            for (int i = 0; i <columns.size(); i++) {
                SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter(Bytes.toBytes(family), Bytes.toBytes(columns.get(i)),
                        CompareOperator.EQUAL, Bytes.toBytes(patterns.get(i)));
                //设置如果没有符合的就不返回所有列信息
                singleColumnValueFilter.setFilterIfMissing(true);
                list.addFilter(singleColumnValueFilter);
            }
            //设置过滤器
            scan.setFilter(list);
            ResultScanner results = table.getScanner(scan);
            return results;
        }
    
    • colums为多个条件所在的列

    • patterns为多个要查询的值

    • FilterList.Operator.MUST_PASS_ONE 的意思为只要符合其中一个条件就通过,等同于sql中的or

    • singleColumnValueFilter.setFilterIfMissing(true) true必设,不然会返回所有的信息

  • 相关阅读:
    Action获取表单数据的三种方式
    Action三种编写方式
    hibernate 查询方式
    hibernate 多对多操作(级联操作)
    对拍
    树的数据生成器
    SPOJ1825 Free tour II 树分治
    Codeforces 474(#271 Div 2) 解题报告
    HNCPC2012 总结
    Sort 对下标进行排序
  • 原文地址:https://www.cnblogs.com/wuren-best/p/13836101.html
Copyright © 2011-2022 走看看