|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.datastax.driver.core.Session
public class Session
A session holds connections to a Cassandra cluster, allowing it to be queried. Each session maintains multiple connections to the cluster nodes, provides policies to choose which node to use for each query (round-robin on all nodes of the cluster by default), and handles retries for failed query (when it makes sense), etc...
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.
Method Summary | |
---|---|
ResultSet |
execute(Query query)
Executes the provided query. |
ResultSet |
execute(String query)
Executes the provided query. |
ResultSetFuture |
executeAsync(Query query)
Executes the provided query asynchronously. |
ResultSetFuture |
executeAsync(String query)
Executes the provided query asynchronously. |
Cluster |
getCluster()
Returns the Cluster object this session is part of. |
PreparedStatement |
prepare(Statement statement)
Prepares the provided query. |
PreparedStatement |
prepare(String query)
Prepares the provided query string. |
void |
shutdown()
Shuts down this session instance. |
boolean |
shutdown(long timeout,
TimeUnit unit)
Shutdown this session instance, only waiting a definite amount of time. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
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(Query query)
query
- the CQL query to execute (that can be either a Statement
or a BoundStatement
). If it is a BoundStatement
, all variables must have been bound (the statement must
be ready).
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).
IllegalStateException
- if query
is a BoundStatement
but !query.isReady()
.public ResultSetFuture executeAsync(String query)
executeAsync(new SimpleStatement(query))
.
query
- the CQL query to execute.
public ResultSetFuture executeAsync(Query query)
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.
query
- the CQL query to execute (that can be either a Statement
or a BoundStatement
). If it is a BoundStatement
, all variables must have been bound (the statement must
be ready).
IllegalStateException
- if query
is a BoundStatement
but !query.isReady()
.public PreparedStatement prepare(String query)
query
- the CQL query string to prepare
query
.
NoHostAvailableException
- if no host in the cluster can be
contacted successfully to prepare this query.public PreparedStatement prepare(Statement 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:
Statement 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 prepare
statement
.
NoHostAvailableException
- if no host in the cluster can be
contacted successfully to prepare this statement.public void shutdown()
This closes all connections used by this sessions. 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 session but also release some additional resources).
This method has no effect if the session was already shutdown.
public boolean shutdown(long timeout, TimeUnit unit)
This closes all connections used by this sessions. Note that if you want
to shutdown the full Cluster
instance this session is part of,
you should use Cluster.shutdown()
instead (which will call this
method for all session but also release some additional resources).
Note that this method is not thread safe in the sense that if another
shutdown is perform in parallel, it might return true
even if
the instance is not yet fully shutdown.
timeout
- how long to wait for the session to shutdown.unit
- the unit for the timeout.
true
if the session has been properly shutdown within
the timeout
, false
otherwise.public Cluster getCluster()
Cluster
object this session is part of.
Cluster
object this session is part of.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |