com.pivotal.gemfirexd.internal.client.am

## Class LogicalPreparedStatement

- java.lang.Object
- - com.pivotal.gemfirexd.internal.client.am.LogicalPreparedStatement

All Implemented Interfaces:
  AutoCloseable, PreparedStatement, Statement, Wrapper

Direct Known Subclasses:
  LogicalCallableStatement, LogicalPreparedStatement40

    public abstract class LogicalPreparedStatement
    extends Object
    implements PreparedStatement

A wrapper class for a physical Derby prepared statement.

The idea behind the logical prepared statement is to allow reuse of the physical prepared statement. In general the logical entity will forward all calls to the physical entity. A few methods have special implementations, the most important one being `close()`. Each method will check that the logical statement is still open before the call is forwarded to the underlying physical statement.

See Also:
  `LogicalStatementEntity`

### Field Summary

Fields
`protected Agent` `agent` Create a logical entity for a `PreparedStatement`.

### 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
`LogicalPreparedStatement(Agent agent, PreparedStatement physicalPs, StatementKey stmtKey, StatementCacheInteractor cacheInteractor)` Creates a new logical prepared statement.

### Method Summary

Methods
`void` `addBatch()`
`void` `addBatch(String sql)`
`void` `cancel()`
`void` `clearBatch()`
`void` `clearParameters()`
`void` `clearWarnings()`
`void` `close()` Close the logical statement.
`boolean` `execute()`
`boolean` `execute(String sql)`
`boolean` `execute(String sql, int autoGeneratedKeys)`
`boolean` `execute(String sql, int[] columnIndexes)`
`boolean` `execute(String sql, String[] columnNames)`
`int[]` `executeBatch()`
`ResultSet` `executeQuery()`
`ResultSet` `executeQuery(String sql)`
`int` `executeUpdate()`
`int` `executeUpdate(String sql)`
`int` `executeUpdate(String sql, int autoGeneratedKeys)`
`int` `executeUpdate(String sql, int[] columnIndexes)`
`int` `executeUpdate(String sql, String[] columnNames)`
`Connection` `getConnection()`
`int` `getFetchDirection()`
`int` `getFetchSize()`
`ResultSet` `getGeneratedKeys()`
`int` `getMaxFieldSize()`
`int` `getMaxRows()`
`ResultSetMetaData` `getMetaData()`
`boolean` `getMoreResults()`
`boolean` `getMoreResults(int current)`
`ParameterMetaData` `getParameterMetaData()`
`int` `getQueryTimeout()`
`ResultSet` `getResultSet()`
`int` `getResultSetConcurrency()`
`int` `getResultSetHoldability()`
`int` `getResultSetType()`
`int` `getUpdateCount()`
`SQLWarning` `getWarnings()`
`void` `setArray(int i, Array x)`
`void` `setAsciiStream(int parameterIndex, InputStream x, int length)`
`void` `setBigDecimal(int parameterIndex, BigDecimal x)`
`void` `setBinaryStream(int parameterIndex, InputStream x, int length)`
`void` `setBlob(int i, Blob x)`
`void` `setBoolean(int parameterIndex, boolean x)`
`void` `setByte(int parameterIndex, byte x)`
`void` `setBytes(int parameterIndex, byte[] x)`
`void` `setCharacterStream(int parameterIndex, Reader reader, int length)`
`void` `setClob(int i, Clob x)`
`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` `setFetchDirection(int direction)`
`void` `setFetchSize(int rows)`
`void` `setFloat(int parameterIndex, float x)`
`void` `setInt(int parameterIndex, int x)`
`void` `setLong(int parameterIndex, long x)`
`void` `setMaxFieldSize(int max)`
`void` `setMaxRows(int max)`
`void` `setNull(int parameterIndex, int sqlType)`
`void` `setNull(int paramIndex, 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 scale)`
`void` `setQueryTimeout(int seconds)`
`void` `setRef(int i, Ref x)`
`void` `setShort(int parameterIndex, short x)`
`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)`

### 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

`setAsciiStream, setAsciiStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setCharacterStream, setCharacterStream, setClob, setClob, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setRowId, setSQLXML`

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

`close, closeOnCompletion, isClosed, isCloseOnCompletion, isPoolable, setPoolable`

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

`isWrapperFor, unwrap`

### Field Detail

#### agent

    protected final Agent agent

Create a logical entity for a `PreparedStatement`.

### Constructor Detail

#### LogicalPreparedStatement

    public LogicalPreparedStatement(Agent agent,
                            PreparedStatement physicalPs,
                            StatementKey stmtKey,
                            StatementCacheInteractor cacheInteractor)

Creates a new logical prepared statement.

Parameters:
  `physicalPs` - underlying physical statement
  `stmtKey` - key for the physical statement
  `cacheInteractor` - creating statement cache interactor
Throws:
  `IllegalArgumentException` - if `cache` is `null`

### Method Detail

#### executeUpdate

    public int executeUpdate()
                      throws SQLException

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

#### addBatch

    public void addBatch()
                  throws SQLException

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

#### clearParameters

    public void clearParameters()
                         throws SQLException

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

#### execute

    public boolean execute()
                    throws SQLException

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

#### setByte

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

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

#### setDouble

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

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

#### setFloat

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

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

#### setInt

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

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

#### setNull

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

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

#### setLong

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

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

#### setShort

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

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

#### setBoolean

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

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

#### setBytes

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

Specified by:
  `setBytes` 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`

#### setBinaryStream

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

Specified by:
  `setBinaryStream` 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`

#### setCharacterStream

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

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

#### setObject

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

Specified by:
  `setObject` 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,
                 int targetSqlType,
                 int scale)
                   throws SQLException

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

#### setNull

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

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

#### setString

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

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

#### setBigDecimal

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

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

#### setURL

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

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

#### setArray

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

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

#### setBlob

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

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

#### setClob

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

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

#### setDate

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

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

#### getParameterMetaData

    public ParameterMetaData getParameterMetaData()
                                           throws SQLException

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

#### setRef

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

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

#### executeQuery

    public ResultSet executeQuery()
                           throws SQLException

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

#### getMetaData

    public ResultSetMetaData getMetaData()
                                  throws SQLException

Specified by:
  `getMetaData` 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`

#### 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`

#### getFetchDirection

    public int getFetchDirection()
                          throws SQLException

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

#### getFetchSize

    public int getFetchSize()
                     throws SQLException

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

#### getMaxFieldSize

    public int getMaxFieldSize()
                        throws SQLException

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

#### getMaxRows

    public int getMaxRows()
                   throws SQLException

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

#### getQueryTimeout

    public int getQueryTimeout()
                        throws SQLException

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

#### getResultSetConcurrency

    public int getResultSetConcurrency()
                                throws SQLException

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

#### getResultSetHoldability

    public int getResultSetHoldability()
                                throws SQLException

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

#### getResultSetType

    public int getResultSetType()
                         throws SQLException

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

#### getUpdateCount

    public int getUpdateCount()
                       throws SQLException

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

#### cancel

    public void cancel()
                throws SQLException

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

#### clearBatch

    public void clearBatch()
                    throws SQLException

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

#### clearWarnings

    public void clearWarnings()
                       throws SQLException

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

#### getMoreResults

    public boolean getMoreResults()
                           throws SQLException

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

#### executeBatch

    public int[] executeBatch()
                       throws SQLException

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

#### setFetchDirection

    public void setFetchDirection(int direction)
                           throws SQLException

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

#### setFetchSize

    public void setFetchSize(int rows)
                      throws SQLException

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

#### setMaxFieldSize

    public void setMaxFieldSize(int max)
                         throws SQLException

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

#### setMaxRows

    public void setMaxRows(int max)
                    throws SQLException

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

#### setQueryTimeout

    public void setQueryTimeout(int seconds)
                         throws SQLException

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

#### getMoreResults

    public boolean getMoreResults(int current)
                           throws SQLException

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

#### setEscapeProcessing

    public void setEscapeProcessing(boolean enable)
                             throws SQLException

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

#### executeUpdate

    public int executeUpdate(String sql)
                      throws SQLException

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

#### addBatch

    public void addBatch(String sql)
                  throws SQLException

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

#### setCursorName

    public void setCursorName(String name)
                       throws SQLException

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

#### execute

    public boolean execute(String sql)
                    throws SQLException

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

#### executeUpdate

    public int executeUpdate(String sql,
                    int autoGeneratedKeys)
                      throws SQLException

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

#### execute

    public boolean execute(String sql,
                  int autoGeneratedKeys)
                    throws SQLException

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

#### executeUpdate

    public int executeUpdate(String sql,
                    int[] columnIndexes)
                      throws SQLException

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

#### execute

    public boolean execute(String sql,
                  int[] columnIndexes)
                    throws SQLException

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

#### getConnection

    public Connection 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`

#### getResultSet

    public ResultSet getResultSet()
                           throws SQLException

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

#### getWarnings

    public SQLWarning getWarnings()
                           throws SQLException

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

#### executeUpdate

    public int executeUpdate(String sql,
                    String[] columnNames)
                      throws SQLException

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

#### execute

    public boolean execute(String sql,
                  String[] columnNames)
                    throws SQLException

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

#### executeQuery

    public ResultSet executeQuery(String sql)
                           throws SQLException

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

#### close

    public void close()
               throws SQLException

Close the logical statement.

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Statement`
Throws:
  `SQLException` - if closing the statement fails