public class Session extends Object
Session instances are thread-safe and usually a single instance is enough per application. However, a given session can only be set to one keyspace at a time, so one instance per keyspace is necessary.
Modifier and Type | Method and Description |
---|---|
ResultSet |
execute(Statement statement)
Executes the provided query.
|
ResultSet |
execute(String query)
Executes the provided query.
|
ResultSet |
execute(String query,
Object... values)
Executes the provided query using the provided value.
|
ResultSetFuture |
executeAsync(Statement statement)
Executes the provided query asynchronously.
|
ResultSetFuture |
executeAsync(String query)
Executes the provided query asynchronously.
|
ResultSetFuture |
executeAsync(String query,
Object... values)
Executes the provided query asynchronously using the provided values.
|
Cluster |
getCluster()
Returns the
Cluster object this session is part of. |
PreparedStatement |
prepare(RegularStatement statement)
Prepares the provided query.
|
PreparedStatement |
prepare(String query)
Prepares the provided query string.
|
ShutdownFuture |
shutdown()
Initiates a shutdown of this session instance.
|
public ResultSet execute(String query)
execute(new SimpleStatement(query))
.query
- the CQL query to execute.NoHostAvailableException
- if no host in the cluster can be
contacted successfully to execute this query.QueryExecutionException
- if the query triggered an execution
exception, i.e. an exception thrown by Cassandra when it cannot execute
the query with the requested consistency level successfully.QueryValidationException
- if the query if invalid (syntax error,
unauthorized or any other validation problem).public ResultSet execute(String query, Object... values)
execute(new SimpleStatement(query, values))
.query
- the CQL query to execute.values
- values required for the execution of query
. See
SimpleStatement.SimpleStatement(String, Object...)
for more detail.NoHostAvailableException
- if no host in the cluster can be
contacted successfully to execute this query.QueryExecutionException
- if the query triggered an execution
exception, i.e. an exception thrown by Cassandra when it cannot execute
the query with the requested consistency level successfully.QueryValidationException
- if the query if invalid (syntax error,
unauthorized or any other validation problem).public ResultSet execute(Statement statement)
statement
- the CQL query to execute (that can be any Statement
).NoHostAvailableException
- if no host in the cluster can be
contacted successfully to execute this query.QueryExecutionException
- if the query triggered an execution
exception, i.e. an exception thrown by Cassandra when it cannot execute
the query with the requested consistency level successfully.QueryValidationException
- if the query if invalid (syntax error,
unauthorized or any other validation problem).public ResultSetFuture executeAsync(String query)
executeAsync(new SimpleStatement(query))
.query
- the CQL query to execute.public ResultSetFuture executeAsync(String query, Object... values)
executeAsync(new SimpleStatement(query, values))
.query
- the CQL query to execute.values
- values required for the execution of query
. See
SimpleStatement.SimpleStatement(String, Object...)
for more detail.public ResultSetFuture executeAsync(Statement statement)
ResultSetFuture
.
Note that for queries that doesn't return a result (INSERT, UPDATE and
DELETE), you will need to access the ResultSetFuture (that is call one of
its get method to make sure the query was successful.statement
- the CQL query to execute (that can be either any Statement
.public PreparedStatement prepare(String query)
query
- the CQL query string to preparequery
.NoHostAvailableException
- if no host in the cluster can be
contacted successfully to prepare this query.public PreparedStatement prepare(RegularStatement statement)
This method is essentially a shortcut for prepare(statement.getQueryString())
,
but note that the resulting PreparedStamenent
will inherit the query properties
set on statement
. Concretely, this means that in the following code:
RegularStatement toPrepare = new SimpleStatement("SELECT * FROM test WHERE k=?").setConsistencyLevel(ConsistencyLevel.QUORUM); PreparedStatement prepared = session.prepare(toPrepare); session.execute(prepared.bind("someValue"));the final execution will be performed with Quorum consistency.
statement
- the statement to preparestatement
.NoHostAvailableException
- if no host in the cluster can be
contacted successfully to prepare this statement.IllegalArgumentException
- if statement.getValues() != null
(values for executing a prepared statement should be provided after preparation
though the PreparedStatement.bind(java.lang.Object...)
method or through a corresponding
BoundStatement
).public ShutdownFuture shutdown()
If for some reason you wish to expedite this process, the
ShutdownFuture.force()
can be called on the result future.
This method has no particular effect if the session was already shut down (in which case the returned future will return immediately).
Note that if you want to shut down the full Cluster
instance
this session is part of, you should use Cluster.shutdown()
instead
(which will call this method for all sessions but also release some
additional resources).
public Cluster getCluster()
Cluster
object this session is part of.Cluster
object this session is part of.Copyright © 2013. All rights reserved.