Was this page helpful?
ScyllaDB Java Driver is available under the Apache v2 License. ScyllaDB Java Driver is a fork of DataStax Java Driver. See Copyright here.
Caution
You're viewing documentation for a previous version of Scylla Java Driver. Switch to the latest stable version.
There are many resources such as this post or this post to learn how to transform previous Thrift operations to CQL queries.
The Java driver executes CQL queries through the Session
.
The queries can either be simple CQL Strings or represented in the form of
Statement
s. The driver offers 4 kinds of statements, SimpleStatement
,
Prepared/BoundStatement
, BuiltStatement
, and BatchStatement
. All necessary
information can be found here about the nature of the different
Statement
s.
As explained in the running section,
results of a CQL query will be in the form of Rows from Tables, composed
of fixed set of columns, each with a type and a name. The driver exposes the
set of Rows returned from a query as a ResultSet, thus containing Rows on
which getXXX()
can be called. Here are simple examples of translation from
Astyanax to Java driver in querying and retrieving query results.
Astyanax:
ColumnFamily<String, String> CF_STANDARD1 = new ColumnFamily<String, String>("cf1", StringSerializer.get(), StringSerializer.get(). StringSerializer.get());
Column<String> result = keyspace.prepareQuery(CF_STANDARD1)
.getKey("1")
.getColumn("3")
.execute().getResult();
String value = result.getStringValue();
Java driver:
Row row = session.execute("SELECT value FROM table1 WHERE key = '1' AND column1 = '3'").one();
String value = row.getString("value");
Astyanax:
ColumnList<String> columns;
int pagesize = 10;
RowQuery<String, String> query = keyspace
.prepareQuery(CF_STANDARD1)
.getKey("1")
.autoPaginate(true)
.withColumnRange(new RangeBuilder().setLimit(pagesize).build());
while (!(columns = query.execute().getResult()).isEmpty()) {
for (Column<String> c : columns) {
String value = c.getStringValue();
}
}
Java driver:
ResultSet rs = session.execute("SELECT value FROM table1 WHERE key = '1'");
for (Row row : rs) {
String value = row.getString("value");
}
Astyanax:
ColumnList<String> result;
result = keyspace.prepareQuery(CF_STANDARD1)
.getKey("1")
.withColumnRange(new RangeBuilder().setStart("3").setEnd("5").setMaxSize(100).build())
.execute().getResult();
Iterator<Column<String>> it = result.iterator();
while (it.hasNext()) {
Column<String> col = it.next();
String value = col.getStringValue();
}
Java driver:
ResultSet rs = session.execute("SELECT value FROM table1 WHERE key = '1'" +
" AND column1 > '3'" +
" AND column1 < '5'");
for (Row row : rs) {
String value = row.getString("value");
}
The Java driver provides native support for asynchronous programming since it is built on top of an asynchronous protocol, please see this page for best practices regarding asynchronous programming with the Java driver.
Was this page helpful?
ScyllaDB Java Driver is available under the Apache v2 License. ScyllaDB Java Driver is a fork of DataStax Java Driver. See Copyright here.