卡桑德拉回来了整整一排

时间:2011-04-18 04:35:19

标签: cassandra-0.7

我正在用一个非常简单的例子来尝试Cassandra。 我有一个存储在cassandra数据库中的列族:

[default@Hotelier] list Hotel;
Using default limit of 100
-------------------
RowKey: AZS_011
=> (column=name, value=43616d6272696120537569746573, timestamp=527682928555011)

上面的价值实际上是“坎布里亚套房”。当我使用以下代码从数据库中检索值时:

    String key = "AZS_011";
    Connector connector = new Connector();
    Cassandra.Client client = connector.connect();

    ColumnPath cp = new ColumnPath("Hotel");
    cp.setColumn(to_bb("name"));

    ColumnOrSuperColumn col = client.get(to_bb(key), cp, CL);                                                                    
    String hotel_name = new String(col.column.value.array(), UTF8);
    System.out.println("I found: " + hotel_name);
    connector.close();

我最终输出:     我发现:?getnameCambria Suites     14 B

似乎通过引用col.column.value,我得到了整行内的所有内容。我的问题是如何才能获得没有名称和时间戳部分的值?非常感谢。

1 个答案:

答案 0 :(得分:2)

使用以下方式获取每列。我用方法得到如下值:

for (ColumnOrSuperColumn c : result) {
            if (c.getColumn() != null) {
                String name = new String(c.getColumn().getName(), ENCODING);
                String value = new String(c.getColumn().getValue(), ENCODING);
                long timestamp = c.getColumn().getTimestamp();
                System.out.println("  name: '" + name + "', value: '" + value + "', timestamp: " + timestamp);
            } else {

            }
        }