【问题标题】:Fetch string from Hector QueryResult object从 Hector QueryResult 对象中获取字符串
【发布时间】:2013-06-06 22:06:27
【问题描述】:

我正在使用 Java Hector API 从 Cassandra 数据库中检索数据,如下所示:

public static void retrieveData() {
    try {
        //Create a cluster object from your existing Cassandra cluster
        Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", "localhost:9160");

        //Create a keyspace object from the existing keyspace we created using CLI
        Keyspace keyspace = HFactory.createKeyspace("TestDB", cluster);

        SliceQuery<String, String, String> sliceQuery = HFactory.createSliceQuery(keyspace, stringSerializer, stringSerializer, stringSerializer);
        sliceQuery.setColumnFamily("ClientHeaders").setKey("1234");
        sliceQuery.setRange("", "", false, 10);
        sliceQuery.setColumnNames("ip_address","uuid");
        QueryResult<ColumnSlice<String, String>> result = sliceQuery.execute();                 
        System.out.println("\nInserted data is as follows:\n" + result.get());   
    } catch (Exception ex) {
        System.out.println("Error encountered while retrieving data!!");
        ex.printStackTrace() ;
    }

所以我按照这个顺序查询得到检索到的值:

ColumnSlice([HColumn(ip_address=203.110.85.171), HColumn(uuid=a3363400-abfd-0130-e2cf-07b5c765964c)])

但是我想在一些字符串变量(字符串 ip=ip_address 等)中提取结果并使用。但我不知道该怎么做?请帮忙。谢谢。

【问题讨论】:

    标签: java cassandra hector cassandra-cli


    【解决方案1】:

    尝试这样做:

     if (result != null && result.get() != null) {
                List<HColumn<String, String>> resultCols = result.get().getColumns();
                for (HColumn<String, String> col : resultCols)
                {
                   System.out.println(col.getValue());
                }
    

    【讨论】:

      【解决方案2】:

      基于 Hector 的 JavaDoc(QueryResultColumnSliceHColumn),您应该能够做到这一点:

      ColumnSlice columnSlice = result.get();
      HColumn<String, String> column = columnSlice.getColumnByName("ip_address");
      System.out.println("The value of ip_address is " + column.getValue());
      

      或者

      for (HColumn<String, String> column : result.get().getColumns()) {
          System.out.println("The value of " + column.getName() + " is " + column.getValue());
      }
      

      【讨论】:

        猜你喜欢
        • 2013-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-04
        • 1970-01-01
        • 1970-01-01
        • 2019-04-30
        • 1970-01-01
        相关资源
        最近更新 更多