### Question:
SpannerStatement implements Statement { @Override public Statement add() { this.statementBindings.completeBinding(); return this; } SpannerStatement(
      Client client,
      StatementExecutionContext ctx,
      String sql,
      SpannerConnectionConfiguration config); @Override Statement add(); @Override Statement bind(String identifier, Object value); @Override Statement bind(int i, Object o); @Override Statement bindNull(String identifier, Class<?> type); @Override Statement bindNull(int i, Class<?> type); @Override Publisher<? extends Result> execute();  }### Answer:
@Test public void batchDmlExceptionTest() { assertThatThrownBy(() -> new SpannerBatch(this.mockClient, null) .add("select * from books")) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining("Only DML statements are supported in batches"); }