当前位置: 首页 > 知识库问答 >
问题:

如何使用java代码在cassandra中插入java列表值?

翟新
2023-03-14

我的cassandra DB结构:

CREATE TABLE devjavasource.userorders (
user_id text PRIMARY KEY,
name text,
rlist list<text>
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';

我的代码:

import com.datastax.driver.core.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class cassandraList
{

    public static void main(String[] args) {
        Cluster cluster = null;
        Session session = null;
        cluster = cluster.builder().addContactPoint("192.168.1.23").build();
        List<String> list= new ArrayList<String>();
        list.add("fake1@fake1.com");
        list.add("fake2@fake2.com");

        session = cluster.connect("devjavasource");

        System.out.println("test :" +list);

        Statement st = new SimpleStatement("INSERT INTO USERS (user_id, name, Rlist) VALUES ('11101', 'john', "+list+");");

        System.out.println("query :" +"INSERT INTO USERS (user_id, name, Rlist) VALUES ('11101', 'john', "+routing_points+");");
        ResultSet rs = session.execute(st);
    }

我有一个错误,所以从print语句中获取查询,如下所示:

  INSERT INTO USERS (user_id, name, Rlist) VALUES ('11101', 'john', [AUE, SAN, UK, LON]);

然后我手动运行此查询到cql,得到以下错误:

语法异常:

共有2个答案

易招
2023-03-14

由于您的列表由字符串组成,因此这应该可以做到:

INSERT INTO USERS (user_id, name, Rlist) VALUES ('11101', 'john', ['AUE', 'SAN', 'UK', 'LON']);
欧阳子石
2023-03-14

使用绑定标记:

List<String> list = new ArrayList<String>(); 
list.add("fake1@fake1.com"); 
list.add("fake2@fake2.com"); 
Statement st = new SimpleStatement("INSERT INTO USERS (user_id, name, rlist) VALUES ('11101', 'john', ?);", list); 
ResultSet rs = session.execute(st);
 类似资料:
  • 问题内容: 嗨,我正在尝试将值插入到mysql表中。我正在尝试此代码。我已经为变量分配了值,我想将该变量传递给该插入语句。这样对吗? 这是我尝试过的,但是我无法插入值 问题答案: 试试这个,

  • 我正在尝试使用Python和DataStax驱动程序(Python- 一切都很好,但有些事情我无法理解。如何插入没有空值的行? 例如, 如果我想插入一个没有url值的行,它可以工作,但在卡桑德拉中,我会在url列中看到“null”。 我检查这个文档: http://datas tax . github . io/python-driver/getting _ started . html #将参数

  • 问题内容: 我需要编写一个代码来比较Java 和Scala的性能。我很难在我的Java代码中使用Scala 。有人可以发布一个真正简单的“ hello world”示例,该示例如何使用Java代码(在文件中)创建Scala 并在其中添加100个随机数吗? PS:我非常擅长Java,但从未使用过Scala。 问题答案: 与其他方式相比,在Scala中使用Java集合要容易得多,但是由于您提出了以下要

  • 我正在尝试使用Pig将HDFS中的文件中的数据复制到Cassandra中的表中。但在将数据存储在Cassandra中时,作业失败,出现空指针异常。有人能帮我吗? 用户表结构: 创建表用户(user\u id text主键、age int、第一个文本、最后一个文本) 我的猪脚本 > A=加载“/用户/hduser/用户。txt“使用PigStorage(',')作为(id:chararray,age

  • 问题内容: 基本上,我想做两件事: 我想知道是否可以使用Java代码运行Java代码。 如果可能的话,如何在屏幕上显示输出?(无论是常规输出还是错误或异常) 我知道这是可能的,因为我的一位前辈已经做到了,但是我不知道他是如何做到的。也许他使用了Java的内置类之一。 注意:用户将代码写入一些文本文件中,然后将文件内容存储在某个变量中,然后也许运行该代码。 问题答案: 是的,有可能。 步骤1:编译代

  • 问题内容: 在Java代码的标签中使用break语句时出现错误。这正在显示。编写这样的代码是错误的。请协助我正确使用它。提前致谢。 问题答案: 带标签的A 与声明不同。Java没有声明。 标签标记了其后的语句。您可以使用它来突破该语句,并且只能脱离该语句。流的控制权将始终转移到标记语句的末尾。 那你这里有什么? 由于if后的分号,实际上这是整个标记的语句。因此,您根本不在其范围内。如果您没有该分号