To execute a query, you create a Statement instance and pass it to Session#execute() or Session#executeAsync. The driver provides various implementations:
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.