nl.topicus.jdbc.statement

## Class AbstractCloudSpannerPreparedStatement

- java.lang.Object
- - nl.topicus.jdbc.metadata.AbstractCloudSpannerWrapper
  - - nl.topicus.jdbc.AbstractCloudSpannerFetcher
    - - nl.topicus.jdbc.statement.CloudSpannerStatement
      - - nl.topicus.jdbc.statement.AbstractCloudSpannerPreparedStatement

All Implemented Interfaces:
  AutoCloseable, PreparedStatement, Statement, Wrapper

Direct Known Subclasses:
  CloudSpannerPreparedStatement

    public abstract class AbstractCloudSpannerPreparedStatement
    extends CloudSpannerStatement
    implements PreparedStatement

Author:
  loite

### Nested Class Summary

### Nested classes/interfaces inherited from class nl.topicus.jdbc.statement.CloudSpannerStatement

`CloudSpannerStatement.BatchMode, CloudSpannerStatement.CustomDriverStatement`

### Field Summary

### Fields inherited from class nl.topicus.jdbc.statement.CloudSpannerStatement

`lastResultSet, lastUpdateCount`

### Fields inherited from interface java.sql.Statement

`CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO`

### Constructor Summary

Constructors
Constructor and Description
`AbstractCloudSpannerPreparedStatement(CloudSpannerConnection connection, com.google.cloud.spanner.DatabaseClient dbClient)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `cancel()`
`protected void` `checkClosed()`
`void` `clearParameters()`
`void` `clearWarnings()`
`void` `close()`
`void` `closeOnCompletion()`
`protected String` `createInsertSelectOnDuplicateKeyUpdateStatement(net.sf.jsqlparser.statement.update.Update update)` Transform the given UPDATE-statement into an "INSERT INTO TAB1 (...) SELECT ...
`protected void` `determineForceSingleUseReadContext(net.sf.jsqlparser.statement.select.Select select)` Determines whether the given sql statement must be executed in a single use read context.
`CloudSpannerConnection` `getConnection()`
`ResultSet` `getGeneratedKeys()`
`int` `getMaxFieldSize()`
`int` `getMaxRows()`
`ResultSetMetaData` `getMetaData()`
`protected ParameterStore` `getParameterStore()`
`int` `getQueryTimeout()`
`protected com.google.cloud.spanner.ReadContext` `getReadContext()`
`int` `getResultSetConcurrency()`
`int` `getResultSetHoldability()`
`int` `getResultSetType()`
`SQLWarning` `getWarnings()`
`boolean` `isClosed()`
`boolean` `isCloseOnCompletion()`
`boolean` `isForceSingleUseReadContext()`
`boolean` `isPoolable()`
`protected String` `quoteIdentifier(String identifier)`
`protected String` `sanitizeSQL(String sql)`
`void` `setArray(int parameterIndex, Array x)`
`void` `setAsciiStream(int parameterIndex, InputStream x)`
`void` `setAsciiStream(int parameterIndex, InputStream x, int length)`
`void` `setAsciiStream(int parameterIndex, InputStream x, long length)`
`void` `setBigDecimal(int parameterIndex, BigDecimal x)`
`void` `setBinaryStream(int parameterIndex, InputStream x)`
`void` `setBinaryStream(int parameterIndex, InputStream x, int length)`
`void` `setBinaryStream(int parameterIndex, InputStream x, long length)`
`void` `setBlob(int parameterIndex, Blob x)`
`void` `setBlob(int parameterIndex, InputStream inputStream)`
`void` `setBlob(int parameterIndex, InputStream inputStream, long length)`
`void` `setBoolean(int parameterIndex, boolean x)`
`void` `setByte(int parameterIndex, byte x)`
`void` `setBytes(int parameterIndex, byte[] x)`
`void` `setCharacterStream(int parameterIndex, Reader reader)`
`void` `setCharacterStream(int parameterIndex, Reader reader, int length)`
`void` `setCharacterStream(int parameterIndex, Reader reader, long length)`
`void` `setClob(int parameterIndex, Clob x)`
`void` `setClob(int parameterIndex, Reader reader)`
`void` `setClob(int parameterIndex, Reader reader, long length)`
`void` `setCursorName(String name)`
`void` `setDate(int parameterIndex, Date x)`
`void` `setDate(int parameterIndex, Date x, Calendar cal)`
`void` `setDouble(int parameterIndex, double x)`
`void` `setEscapeProcessing(boolean enable)`
`void` `setFloat(int parameterIndex, float x)`
`void` `setForceSingleUseReadContext(boolean forceSingleUseReadContext)`
`void` `setInt(int parameterIndex, int x)`
`void` `setLong(int parameterIndex, long x)`
`void` `setMaxFieldSize(int max)`
`void` `setMaxRows(int max)`
`void` `setNCharacterStream(int parameterIndex, Reader value)`
`void` `setNCharacterStream(int parameterIndex, Reader value, long length)`
`void` `setNClob(int parameterIndex, NClob value)`
`void` `setNClob(int parameterIndex, Reader reader)`
`void` `setNClob(int parameterIndex, Reader reader, long length)`
`void` `setNString(int parameterIndex, String value)`
`void` `setNull(int parameterIndex, int sqlType)`
`void` `setNull(int parameterIndex, int sqlType, String typeName)`
`void` `setObject(int parameterIndex, Object x)`
`void` `setObject(int parameterIndex, Object x, int targetSqlType)`
`void` `setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength)`
`void` `setPoolable(boolean poolable)`
`void` `setQueryTimeout(int seconds)`
`void` `setRef(int parameterIndex, Ref x)`
`void` `setRowId(int parameterIndex, RowId x)`
`void` `setShort(int parameterIndex, short x)`
`void` `setSQLXML(int parameterIndex, SQLXML xmlObject)`
`void` `setString(int parameterIndex, String x)`
`void` `setTime(int parameterIndex, Time x)`
`void` `setTime(int parameterIndex, Time x, Calendar cal)`
`void` `setTimestamp(int parameterIndex, Timestamp x)`
`void` `setTimestamp(int parameterIndex, Timestamp x, Calendar cal)`
`void` `setUnicodeStream(int parameterIndex, InputStream x, int length)`
`void` `setURL(int parameterIndex, URL x)`
`protected String` `unquoteIdentifier(String identifier)`
`protected long` `writeMutations(nl.topicus.jdbc.statement.Mutations mutations)`

### Methods inherited from class nl.topicus.jdbc.statement.CloudSpannerStatement

`addBatch, clearBatch, execute, execute, execute, execute, executeBatch, executeDDL, executeDDL, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, formatDDLStatement, getBatch, getCurrentBatchMode, getCustomDriverStatement, getMoreResults, getMoreResults, getResultSet, getTokens, getTokens, getUpdateCount, isDDLStatement, isSelectStatement, removeComments`

### Methods inherited from class nl.topicus.jdbc.AbstractCloudSpannerFetcher

`getFetchDirection, getFetchSize, setFetchDirection, setFetchSize`

### Methods inherited from class nl.topicus.jdbc.metadata.AbstractCloudSpannerWrapper

`extractColumnType, getClassName, getGoogleTypeName, isWrapperFor, unwrap`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.sql.PreparedStatement

`addBatch, execute, executeLargeUpdate, executeQuery, executeUpdate, getParameterMetaData, setObject, setObject`

### Methods inherited from interface java.sql.Statement

`addBatch, cancel, clearBatch, clearWarnings, close, closeOnCompletion, execute, execute, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

### Methods inherited from interface java.sql.Wrapper

`isWrapperFor, unwrap`

### Constructor Detail

#### AbstractCloudSpannerPreparedStatement

    public AbstractCloudSpannerPreparedStatement(CloudSpannerConnection connection,
                                                 com.google.cloud.spanner.DatabaseClient dbClient)

### Method Detail

#### getParameterStore

    protected ParameterStore getParameterStore()

#### setNull

    public void setNull(int parameterIndex,
                        int sqlType)
                 throws SQLException

Specified by:
  `setNull` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setBoolean

    public void setBoolean(int parameterIndex,
                           boolean x)
                    throws SQLException

Specified by:
  `setBoolean` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setByte

    public void setByte(int parameterIndex,
                        byte x)
                 throws SQLException

Specified by:
  `setByte` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setShort

    public void setShort(int parameterIndex,
                         short x)
                  throws SQLException

Specified by:
  `setShort` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setInt

    public void setInt(int parameterIndex,
                       int x)
                throws SQLException

Specified by:
  `setInt` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setLong

    public void setLong(int parameterIndex,
                        long x)
                 throws SQLException

Specified by:
  `setLong` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setFloat

    public void setFloat(int parameterIndex,
                         float x)
                  throws SQLException

Specified by:
  `setFloat` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setDouble

    public void setDouble(int parameterIndex,
                          double x)
                   throws SQLException

Specified by:
  `setDouble` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setBigDecimal

    public void setBigDecimal(int parameterIndex,
                              BigDecimal x)
                       throws SQLException

Specified by:
  `setBigDecimal` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setString

    public void setString(int parameterIndex,
                          String x)
                   throws SQLException

Specified by:
  `setString` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setBytes

    public void setBytes(int parameterIndex,
                         byte[] x)
                  throws SQLException

Specified by:
  `setBytes` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setDate

    public void setDate(int parameterIndex,
                        Date x)
                 throws SQLException

Specified by:
  `setDate` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setTime

    public void setTime(int parameterIndex,
                        Time x)
                 throws SQLException

Specified by:
  `setTime` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setTimestamp

    public void setTimestamp(int parameterIndex,
                             Timestamp x)
                      throws SQLException

Specified by:
  `setTimestamp` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setAsciiStream

    public void setAsciiStream(int parameterIndex,
                               InputStream x,
                               int length)
                        throws SQLException

Specified by:
  `setAsciiStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setUnicodeStream

    public void setUnicodeStream(int parameterIndex,
                                 InputStream x,
                                 int length)
                          throws SQLException

Specified by:
  `setUnicodeStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setBinaryStream

    public void setBinaryStream(int parameterIndex,
                                InputStream x,
                                int length)
                         throws SQLException

Specified by:
  `setBinaryStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### clearParameters

    public void clearParameters()
                         throws SQLException

Specified by:
  `clearParameters` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setObject

    public void setObject(int parameterIndex,
                          Object x,
                          int targetSqlType)
                   throws SQLException

Specified by:
  `setObject` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setObject

    public void setObject(int parameterIndex,
                          Object x)
                   throws SQLException

Specified by:
  `setObject` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setCharacterStream

    public void setCharacterStream(int parameterIndex,
                                   Reader reader,
                                   int length)
                            throws SQLException

Specified by:
  `setCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setRef

    public void setRef(int parameterIndex,
                       Ref x)
                throws SQLException

Specified by:
  `setRef` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setBlob

    public void setBlob(int parameterIndex,
                        Blob x)
                 throws SQLException

Specified by:
  `setBlob` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setClob

    public void setClob(int parameterIndex,
                        Clob x)
                 throws SQLException

Specified by:
  `setClob` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setArray

    public void setArray(int parameterIndex,
                         Array x)
                  throws SQLException

Specified by:
  `setArray` in interface `PreparedStatement`
Throws:
  `SQLException`

#### getMetaData

    public ResultSetMetaData getMetaData()
                                  throws SQLException

Specified by:
  `getMetaData` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setDate

    public void setDate(int parameterIndex,
                        Date x,
                        Calendar cal)
                 throws SQLException

Specified by:
  `setDate` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setTime

    public void setTime(int parameterIndex,
                        Time x,
                        Calendar cal)
                 throws SQLException

Specified by:
  `setTime` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setTimestamp

    public void setTimestamp(int parameterIndex,
                             Timestamp x,
                             Calendar cal)
                      throws SQLException

Specified by:
  `setTimestamp` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setNull

    public void setNull(int parameterIndex,
                        int sqlType,
                        String typeName)
                 throws SQLException

Specified by:
  `setNull` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setURL

    public void setURL(int parameterIndex,
                       URL x)
                throws SQLException

Specified by:
  `setURL` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setRowId

    public void setRowId(int parameterIndex,
                         RowId x)
                  throws SQLException

Specified by:
  `setRowId` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setNString

    public void setNString(int parameterIndex,
                           String value)
                    throws SQLException

Specified by:
  `setNString` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setNCharacterStream

    public void setNCharacterStream(int parameterIndex,
                                    Reader value,
                                    long length)
                             throws SQLException

Specified by:
  `setNCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setNClob

    public void setNClob(int parameterIndex,
                         NClob value)
                  throws SQLException

Specified by:
  `setNClob` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setClob

    public void setClob(int parameterIndex,
                        Reader reader,
                        long length)
                 throws SQLException

Specified by:
  `setClob` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setBlob

    public void setBlob(int parameterIndex,
                        InputStream inputStream,
                        long length)
                 throws SQLException

Specified by:
  `setBlob` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setNClob

    public void setNClob(int parameterIndex,
                         Reader reader,
                         long length)
                  throws SQLException

Specified by:
  `setNClob` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setSQLXML

    public void setSQLXML(int parameterIndex,
                          SQLXML xmlObject)
                   throws SQLException

Specified by:
  `setSQLXML` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setObject

    public void setObject(int parameterIndex,
                          Object x,
                          int targetSqlType,
                          int scaleOrLength)
                   throws SQLException

Specified by:
  `setObject` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setAsciiStream

    public void setAsciiStream(int parameterIndex,
                               InputStream x,
                               long length)
                        throws SQLException

Specified by:
  `setAsciiStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setBinaryStream

    public void setBinaryStream(int parameterIndex,
                                InputStream x,
                                long length)
                         throws SQLException

Specified by:
  `setBinaryStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setCharacterStream

    public void setCharacterStream(int parameterIndex,
                                   Reader reader,
                                   long length)
                            throws SQLException

Specified by:
  `setCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setAsciiStream

    public void setAsciiStream(int parameterIndex,
                               InputStream x)
                        throws SQLException

Specified by:
  `setAsciiStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setBinaryStream

    public void setBinaryStream(int parameterIndex,
                                InputStream x)
                         throws SQLException

Specified by:
  `setBinaryStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setCharacterStream

    public void setCharacterStream(int parameterIndex,
                                   Reader reader)
                            throws SQLException

Specified by:
  `setCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setNCharacterStream

    public void setNCharacterStream(int parameterIndex,
                                    Reader value)
                             throws SQLException

Specified by:
  `setNCharacterStream` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setClob

    public void setClob(int parameterIndex,
                        Reader reader)
                 throws SQLException

Specified by:
  `setClob` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setBlob

    public void setBlob(int parameterIndex,
                        InputStream inputStream)
                 throws SQLException

Specified by:
  `setBlob` in interface `PreparedStatement`
Throws:
  `SQLException`

#### setNClob

    public void setNClob(int parameterIndex,
                         Reader reader)
                  throws SQLException

Specified by:
  `setNClob` in interface `PreparedStatement`
Throws:
  `SQLException`

#### sanitizeSQL

    protected String sanitizeSQL(String sql)

#### createInsertSelectOnDuplicateKeyUpdateStatement

    protected String createInsertSelectOnDuplicateKeyUpdateStatement(net.sf.jsqlparser.statement.update.Update update)
                                                              throws SQLException

Transform the given UPDATE-statement into an "INSERT INTO TAB1 (...) SELECT ... FROM TAB1 WHERE ... ON DUPLICATE KEY UPDATE"

Parameters:
  `update` - The UPDATE-statement
Returns:
  An SQL-statement equal to the UPDATE-statement but in INSERT form
Throws:
  `SQLException` - if a database exception occurs while getting the table meta data or if the statement tries to update the primary key value

#### quoteIdentifier

    protected String quoteIdentifier(String identifier)

#### unquoteIdentifier

    protected String unquoteIdentifier(String identifier)

#### determineForceSingleUseReadContext

    protected void determineForceSingleUseReadContext(net.sf.jsqlparser.statement.select.Select select)

Determines whether the given sql statement must be executed in a single use read context. This must be done for queries against the information schema. This method sets the `forceSingleUseReadContext` to true if necessary.

Parameters:
  `select` - The sql statement to be examined.

#### isForceSingleUseReadContext

    public boolean isForceSingleUseReadContext()

#### setForceSingleUseReadContext

    public void setForceSingleUseReadContext(boolean forceSingleUseReadContext)

#### getReadContext

    protected com.google.cloud.spanner.ReadContext getReadContext()
                                                           throws SQLException

Throws:
  `SQLException`

#### writeMutations

    protected long writeMutations(nl.topicus.jdbc.statement.Mutations mutations)
                           throws SQLException

Throws:
  `SQLException`

#### isClosed

    public boolean isClosed()
                     throws SQLException

Specified by:
  `isClosed` in interface `Statement`
Throws:
  `SQLException`

#### close

    public void close()
               throws SQLException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Statement`
Throws:
  `SQLException`

#### checkClosed

    protected void checkClosed()
                        throws SQLException

Throws:
  `SQLException`

#### getMaxFieldSize

    public int getMaxFieldSize()
                        throws SQLException

Specified by:
  `getMaxFieldSize` in interface `Statement`
Throws:
  `SQLException`

#### setMaxFieldSize

    public void setMaxFieldSize(int max)
                         throws SQLException

Specified by:
  `setMaxFieldSize` in interface `Statement`
Throws:
  `SQLException`

#### getMaxRows

    public int getMaxRows()
                   throws SQLException

Specified by:
  `getMaxRows` in interface `Statement`
Throws:
  `SQLException`

#### setMaxRows

    public void setMaxRows(int max)
                    throws SQLException

Specified by:
  `setMaxRows` in interface `Statement`
Throws:
  `SQLException`

#### setEscapeProcessing

    public void setEscapeProcessing(boolean enable)
                             throws SQLException

Specified by:
  `setEscapeProcessing` in interface `Statement`
Throws:
  `SQLException`

#### getQueryTimeout

    public int getQueryTimeout()
                        throws SQLException

Specified by:
  `getQueryTimeout` in interface `Statement`
Throws:
  `SQLException`

#### setQueryTimeout

    public void setQueryTimeout(int seconds)
                         throws SQLException

Specified by:
  `setQueryTimeout` in interface `Statement`
Throws:
  `SQLException`

#### cancel

    public void cancel()
                throws SQLException

Specified by:
  `cancel` in interface `Statement`
Throws:
  `SQLException`

#### getWarnings

    public SQLWarning getWarnings()
                           throws SQLException

Specified by:
  `getWarnings` in interface `Statement`
Throws:
  `SQLException`

#### clearWarnings

    public void clearWarnings()
                       throws SQLException

Specified by:
  `clearWarnings` in interface `Statement`
Throws:
  `SQLException`

#### setCursorName

    public void setCursorName(String name)
                       throws SQLException

Specified by:
  `setCursorName` in interface `Statement`
Throws:
  `SQLException`

#### getResultSetConcurrency

    public int getResultSetConcurrency()
                                throws SQLException

Specified by:
  `getResultSetConcurrency` in interface `Statement`
Throws:
  `SQLException`

#### getResultSetType

    public int getResultSetType()
                         throws SQLException

Specified by:
  `getResultSetType` in interface `Statement`
Throws:
  `SQLException`

#### getConnection

    public CloudSpannerConnection getConnection()
                                         throws SQLException

Specified by:
  `getConnection` in interface `Statement`
Throws:
  `SQLException`

#### getGeneratedKeys

    public ResultSet getGeneratedKeys()
                               throws SQLException

Specified by:
  `getGeneratedKeys` in interface `Statement`
Throws:
  `SQLException`

#### getResultSetHoldability

    public int getResultSetHoldability()
                                throws SQLException

Specified by:
  `getResultSetHoldability` in interface `Statement`
Throws:
  `SQLException`

#### setPoolable

    public void setPoolable(boolean poolable)
                     throws SQLException

Specified by:
  `setPoolable` in interface `Statement`
Throws:
  `SQLException`

#### isPoolable

    public boolean isPoolable()
                       throws SQLException

Specified by:
  `isPoolable` in interface `Statement`
Throws:
  `SQLException`

#### closeOnCompletion

    public void closeOnCompletion()
                           throws SQLException

Specified by:
  `closeOnCompletion` in interface `Statement`
Throws:
  `SQLException`

#### isCloseOnCompletion

    public boolean isCloseOnCompletion()
                                throws SQLException

Specified by:
  `isCloseOnCompletion` in interface `Statement`
Throws:
  `SQLException`