PreparedStatement preparedInsertExpense = session.prepare( "INSERT INTO cyclist_expenses (cyclist_name, expense_id, amount, description, paid) " + "VALUES (:name, :id, :amount, :description, :paid)"); SimpleStatement simpleInsertBalance = new SimpleStatement("INSERT INTO cyclist_expenses (cyclist_name, balance) VALUES (?, 0) IF NOT EXISTS", "Vera ADRIAN"); BatchStatement batch = new BatchStatement(BatchStatement.Type.UNLOGGED) .add(simpleInsertBalance) .add(preparedInsertExpense.bind("Vera ADRIAN", 1, 7.95f, "Breakfast", false)); session.execute(batch);
As shown in the examples above, batches can contain any combination of simple statements and bound
statements. A given batch can contain at most 65536 statements. Past this limit, addition methods
By default, batches are configured as LOGGED. This ensures that if any statement in the batch succeeds, all will eventually succeed. Ensuring all queries in a batch succeed has a performance cost. Consider using UNLOGGED as shown above if you do not need this capability.
Please note that the size of a batch is subject to the batch_size_fail_threshold configuration option on the server.
In addition, simple statements with named parameters are currently not supported in batches (this is
due to a protocol limitation that will be fixed in a future version). If you try
to execute such a batch, an
IllegalArgumentException is thrown.