Передача параметра в Cassandra CQL-запрос с использованием клиента DataStax

Я использую datastax в качестве клиента для подключения к cassandra. Я успешно подключился к семействам cassandra cluster/keyspace/columns через Java. Я пытаюсь, уволяя некоторые запросы на семейство кассандры column thriugh java. Для меня он работает для простых запросов, таких как

ResultSet results = session.execute("select * from demodb.customer where id = 1");

Теперь я хочу взять параметр id от пользователя и передать его в оператор session.execute();. Как мне это сделать?

Ответ 1

Вот пример кода вставки данных об изображении с использованием подготовленных операторов.

PreparedStatement statement = getSession().prepare(
                               "INSERT INTO pixelstore.image " +
                               "(image_name, " +
                               " upload_time, " + 
                               " upload_by, " + 
                               " file_type, " + 
                               " file_size" +
                               ") VALUES (?, ?, ?, ?, ?);"); 

// create the bound statement and initialise it with your prepared statement
BoundStatement boundStatement = new BoundStatement(statement);

session.execute( // this is where the query is executed
  boundStatement.bind( // here you are binding the 'boundStatement'
    "background", TimeUtil.getTimeUUID(),  "lyubent", "png", "130527"));

На планете cassandra появились две последние сообщения в блоге с демонстрацией того, что может сделать драйвер, они содержат примеры кода, поэтому проверьте их:

Ответ 2

Вам нужно создать подготовленный оператор. Затем вам нужно связать этот оператор с идентификационным значением, полученным от пользователя. Затем вы можете выполнить связанный оператор.