gpt4 book ai didi

java - Cassandra /Datastax : How to get values of column having list datatype in java

转载 作者:行者123 更新时间:2023-11-30 05:34:09 24 4
gpt4 key购买 nike

我在 cassandra 中执行了一个查询,其中有 3 列,第三列的数据类型为 List查询结果格式如下:

||Col 1 (varchar)||Col 2 (varchar)||Col 3 (list)||
|value 1.1|value 2.1|{"option 1":"value 1","option 2":"value 2"}

我想获取第 3 列的值并将其存储在某个变量中

我尝试了 .getList 选项,但它不起作用并抛出异常,因此无法找到任何其他方法。

因此无法附加示例代码。

最佳答案

Alex 提出了一个很好的观点,即数据采用列表格式,而不是 map 格式。话虽这么说,我将发布带有 DataStax Java 驱动程序 v3.6 的代码,展示如何拉回列表和 map 。

首先,我创建了一个包含两种类型集合的示例表,并添加了一些值:

aaron@cqlsh:stackoverflow> CREATE TABLE collections (key TEXT PRIMARY KEY,
testList LIST<TEXT>, testMap MAP<TEXT,TEXT>);
aaron@cqlsh:stackoverflow> INSERT INTO collections (key,testList,testMap)
VALUES ('a',['one','two','three'],{'option 1':'value 1','option 2':'value 2','option 3':'value 3'});

我通过一个简单的查询验证了它的工作原理:

aaron@cqlsh:stackoverflow> SELECT key, testlist, testmap
FROM stackoverflow.collections WHERE key='a';

key | testlist | testmap
-----+-------------------------+-----------------------------------------------------------------------
a | ['one', 'two', 'three'] | {'option 1': 'value 1', 'option 2': 'value 2', 'option 3': 'value 3'}

(1 rows)

我使用自定义 CassandraConnection 构建了一个简单的应用程序处理我的集群和 session 对象、连接并运行一个简单的 session.execute(strQuery); 的类。然后在我的 Java 测试应用程序中,这有效:

String strSELECT2 ="SELECT key, testlist, testmap "
+ "FROM stackoverflow.collections WHERE key='a'";
ResultSet rows2 = conn.query(strSELECT2);

for (Row row : rows2) {
System.out.print(
row.getString("key") + " " +
"\nList:" + row.getList("testlist", String.class).toString() + " " +
"\nMap:" + row.getMap("testmap", String.class, String.class));
}

并产生以下结果:

a 
List:[one, two, three]
Map:{option 1=value 1, option 2=value 2, option 3=value 3}

关于java - Cassandra /Datastax : How to get values of column having list datatype in java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56946002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com