SimpleStatement: a simple implementation built directly from a character string. Typically used for queries that are executed only once or a few times.
BoundStatement: obtained by binding values to a prepared statement. Typically used for queries that are executed often, with different values.
BatchStatement: a statement that groups multiple statements to be executed as a batch.
Before executing a statement, you might want to customize certain
aspects of its execution.
Statement provides a number of methods for
this, for example:
Statement s = new SimpleStatement("select release_version from system.local"); s.enableTracing(); session.execute(s);
If you use custom policies (RetryPolicy, LoadBalancingPolicy, SpeculativeExecutionPolicy…), you might also want to have custom properties that influence statement execution. To achieve this, you can wrap your statements in a custom StatementWrapper implementation.