public class PreparedStatement extends Object
A prepared statement can be executed once concrete values have been provided
for the bound variables. A prepared statement and the values for its
bound variables constitute a BoundStatement and can be executed (by
Session.execute(java.lang.String)
).
A PreparedStatement
object allows you to define specific defaults
for the different properties of a Query
(Consistency level, tracing, ...),
in which case those properties will be inherited as default by every
BoundedStatement created from the {PreparedStatement}. The default for those
PreparedStatement
properties is the same that in Query
if the
PreparedStatement is created by Session.prepare(String)
but will inherit
of the properties of the Statement
used for the preparation if
Session.prepare(Statement)
is used.
Modifier and Type | Method and Description |
---|---|
BoundStatement |
bind()
Creates a new BoundStatement object for this prepared statement.
|
BoundStatement |
bind(Object... values)
Creates a new BoundStatement object and bind its variables to the
provided values.
|
PreparedStatement |
disableTracing()
Convenience method to disable tracing for all bound statements created
from this prepared statement.
|
PreparedStatement |
enableTracing()
Convenience method to enables tracing for all bound statements created
from this prepared statement.
|
ConsistencyLevel |
getConsistencyLevel()
Returns the default consistency level set through
setConsistencyLevel(com.datastax.driver.core.ConsistencyLevel) . |
String |
getQueryKeyspace()
Returns the keyspace at the time that this prepared statement was prepared,
(that is the one on which this statement applies unless it specified a
keyspace explicitly).
|
String |
getQueryString()
Returns the string of the query that was prepared to yield this
PreparedStatement . |
RetryPolicy |
getRetryPolicy()
Returns the retry policy sets for this prepared statement, if any.
|
ColumnDefinitions |
getVariables()
Returns metadata on the bounded variables of this prepared statement.
|
boolean |
isTracing()
Returns whether tracing is enabled for this prepared statement, i.e.
|
PreparedStatement |
setConsistencyLevel(ConsistencyLevel consistency)
Sets a default consistency level for all bound statements
created from this prepared statement.
|
PreparedStatement |
setRetryPolicy(RetryPolicy policy)
Convenience method to set a default retry policy for the
BoundStatement
created from this prepared statement. |
PreparedStatement |
setRoutingKey(ByteBuffer... routingKeyComponents)
Sets the routing key for this query.
|
PreparedStatement |
setRoutingKey(ByteBuffer routingKey)
Sets the routing key for this prepared statement.
|
public ColumnDefinitions getVariables()
public BoundStatement bind(Object... values)
While the number of values
cannot be greater than the number of bound
variables, the number of values
may be fewer than the number of bound
variables. In that case, the remaining variables will have to be bound
to values by another mean because the resulting BoundStatement
being executable.
This method is a convenience for new BoundStatement(this).bind(...)
.
values
- the values to bind to the variables of the newly created
BoundStatement.BoundStatement
with its variables
bound to values
.IllegalArgumentException
- if more values
are provided
than there is of bound variables in this statement.InvalidTypeException
- if any of the provided value is not of
correct type to be bound to the corresponding bind variable.NullPointerException
- if one of values
is a collection
(List, Set or Map) containing a null value. Nulls are not supported in
collections by CQL.BoundStatement.bind(java.lang.Object...)
public BoundStatement bind()
This method do not bind any values to any of the prepared variables. Said
values need to be bound on the resulting statement using BoundStatement's
setters methods (BoundStatement.setInt(int, int)
, BoundStatement.setLong(int, long)
, ...).
BoundStatement
.public PreparedStatement setRoutingKey(ByteBuffer routingKey)
While you can provide a fixed routing key for all executions of this prepared statement with this method, it is not mandatory to provide one through this method. This method should only be used if the partition key of the prepared query is not part of the prepared variables (that is if the partition key is fixed).
Note that if the partition key is part of the prepared variables, the routing key will be automatically computed once those variables are bound.
routingKey
- the raw (binary) value to use as routing key.PreparedStatement
object.Query.getRoutingKey()
public PreparedStatement setRoutingKey(ByteBuffer... routingKeyComponents)
See setRoutingKey(ByteBuffer)
for more information. This
method is a variant for when the query partition key is composite and
the routing key must be built from multiple values.
routingKeyComponents
- the raw (binary) values to compose to obtain
the routing key.PreparedStatement
object.Query.getRoutingKey()
public PreparedStatement setConsistencyLevel(ConsistencyLevel consistency)
If no consistency level is set through this method, the bound statement created from this object will use the default consistency level (ONE).
Changing the default consistency level is not retroactive, it only applies to BoundStatement created after the change.
consistency
- the default consistency level to set.PreparedStatement
object.public ConsistencyLevel getConsistencyLevel()
setConsistencyLevel(com.datastax.driver.core.ConsistencyLevel)
.null
if no
consistency level has been set through this object setConsistencyLevel
method.public String getQueryString()
PreparedStatement
.
Note that a CQL3 query may be implicitly applied to the current keyspace
(that is, if the keyspace is not explicitly qualified in the query
itself). For prepared queries, the current keyspace used is the one at
the time of the preparation, not the one at execution time. The current
keyspace at the time of the preparation can be retrieved through
getQueryKeyspace()
.
PreparedStatement
.public String getQueryKeyspace()
null
if no keyspace was set when the query was prepared (which
is possible since keyspaces can be explicitly qualified in queries and
so may not require a current keyspace to be set).public PreparedStatement enableTracing()
Query
object.public PreparedStatement disableTracing()
PreparedStatement
object.public boolean isTracing()
true
if this prepared statement has tracing enabled,
false
otherwise.public PreparedStatement setRetryPolicy(RetryPolicy policy)
BoundStatement
created from this prepared statement.
Note that this method is competely optional. By default, the retry policy
used is the one returned Policies.getRetryPolicy()
in the cluster configuration. This method is only useful if you want
to override this default policy for the BoundStatement
created from
this PreparedStatement
.
to punctually override the default policy for this request.
policy
- the retry policy to use for this prepared statement.PreparedStatement
object.public RetryPolicy getRetryPolicy()
null
if none have been set.Copyright © 2014. All Rights Reserved.