Package org.apache.calcite.avatica

## Class AvaticaPreparedStatement

- java.lang.Object
- - org.apache.calcite.avatica.AvaticaStatement
  - - org.apache.calcite.avatica.AvaticaPreparedStatement

All Implemented Interfaces:
  `java.lang.AutoCloseable`, `java.sql.ParameterMetaData`, `java.sql.PreparedStatement`, `java.sql.Statement`, `java.sql.Wrapper`

Direct Known Subclasses:
  `AvaticaJdbc41Factory.AvaticaJdbc41PreparedStatement`

    public abstract class AvaticaPreparedStatement
    extends AvaticaStatement
    implements java.sql.PreparedStatement, java.sql.ParameterMetaData

Implementation of `PreparedStatement` for the Avatica engine.

This class has sub-classes which implement JDBC 3.0 and JDBC 4.0 APIs; it is instantiated using `AvaticaFactory.newPreparedStatement(org.apache.calcite.avatica.AvaticaConnection, org.apache.calcite.avatica.Meta.StatementHandle, org.apache.calcite.avatica.Meta.Signature, int, int, int)`.

### Field Summary

Fields
`private java.util.Calendar` `calendar`
`protected java.util.List<java.util.List<TypedValue>>` `parameterValueBatch`
`private java.sql.ResultSetMetaData` `resultSetMetaData`
`protected TypedValue[]` `slots`

### Fields inherited from class org.apache.calcite.avatica.AvaticaStatement

`cancelFlag, closed, closeOnCompletion, connection, DEFAULT_FETCH_SIZE, handle, maxRowCount, openResultSet, resultSetConcurrency, resultSetHoldability, resultSetType, updateCount`

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

`parameterModeIn, parameterModeInOut, parameterModeOut, parameterModeUnknown, parameterNoNulls, parameterNullable, parameterNullableUnknown`

### 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
`protected` `AvaticaPreparedStatement​(AvaticaConnection connection, Meta.StatementHandle h, Meta.Signature signature, int resultSetType, int resultSetConcurrency, int resultSetHoldability)` Creates an AvaticaPreparedStatement.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addBatch()`
`void` `clearBatch()`
`void` `clearParameters()`
`protected java.util.List<TypedValue>` `copyParameterValues()` Returns a copy of the current parameter values.
`boolean` `execute()`
`int[]` `executeBatch()`
`long[]` `executeLargeBatch()`
`long` `executeLargeUpdate()`
`java.sql.ResultSet` `executeQuery()`
`int` `executeUpdate()`
`protected java.util.Calendar` `getCalendar()` Returns a calendar in the connection's time zone, creating one the first time this method is called.
`java.sql.ResultSetMetaData` `getMetaData()`
`protected AvaticaParameter` `getParameter​(int param)`
`java.lang.String` `getParameterClassName​(int index)`
`int` `getParameterCount()`
`java.sql.ParameterMetaData` `getParameterMetaData()`
`int` `getParameterMode​(int param)`
`int` `getParameterType​(int index)`
`java.lang.String` `getParameterTypeName​(int index)`
`protected java.util.List<java.util.List<TypedValue>>` `getParameterValueBatch()`
`protected java.util.List<TypedValue>` `getParameterValues()` Returns the list of values of this statement's parameters.
`int` `getPrecision​(int index)`
`int` `getScale​(int index)`
`protected AvaticaSite` `getSite​(int param)`
`int` `isNullable​(int param)`
`boolean` `isSigned​(int index)`
`void` `setArray​(int parameterIndex, java.sql.Array x)`
`void` `setAsciiStream​(int parameterIndex, java.io.InputStream x)`
`void` `setAsciiStream​(int parameterIndex, java.io.InputStream x, int length)`
`void` `setAsciiStream​(int parameterIndex, java.io.InputStream x, long length)`
`void` `setBigDecimal​(int parameterIndex, java.math.BigDecimal x)`
`void` `setBinaryStream​(int parameterIndex, java.io.InputStream x)`
`void` `setBinaryStream​(int parameterIndex, java.io.InputStream x, int length)`
`void` `setBinaryStream​(int parameterIndex, java.io.InputStream x, long length)`
`void` `setBlob​(int parameterIndex, java.io.InputStream inputStream)`
`void` `setBlob​(int parameterIndex, java.io.InputStream inputStream, long length)`
`void` `setBlob​(int parameterIndex, java.sql.Blob x)`
`void` `setBoolean​(int parameterIndex, boolean x)`
`void` `setByte​(int parameterIndex, byte x)`
`void` `setBytes​(int parameterIndex, byte[] x)`
`void` `setCharacterStream​(int parameterIndex, java.io.Reader reader)`
`void` `setCharacterStream​(int parameterIndex, java.io.Reader reader, int length)`
`void` `setCharacterStream​(int parameterIndex, java.io.Reader reader, long length)`
`void` `setClob​(int parameterIndex, java.io.Reader reader)`
`void` `setClob​(int parameterIndex, java.io.Reader reader, long length)`
`void` `setClob​(int parameterIndex, java.sql.Clob x)`
`void` `setDate​(int parameterIndex, java.sql.Date x)`
`void` `setDate​(int parameterIndex, java.sql.Date x, java.util.Calendar calendar)`
`void` `setDouble​(int parameterIndex, double x)`
`void` `setFloat​(int parameterIndex, float x)`
`void` `setInt​(int parameterIndex, int x)`
`void` `setLong​(int parameterIndex, long x)`
`void` `setNCharacterStream​(int parameterIndex, java.io.Reader value)`
`void` `setNCharacterStream​(int parameterIndex, java.io.Reader value, long length)`
`void` `setNClob​(int parameterIndex, java.io.Reader reader)`
`void` `setNClob​(int parameterIndex, java.io.Reader reader, long length)`
`void` `setNClob​(int parameterIndex, java.sql.NClob value)`
`void` `setNString​(int parameterIndex, java.lang.String value)`
`void` `setNull​(int parameterIndex, int sqlType)`
`void` `setNull​(int parameterIndex, int sqlType, java.lang.String typeName)`
`void` `setObject​(int parameterIndex, java.lang.Object x)`
`void` `setObject​(int parameterIndex, java.lang.Object x, int targetSqlType)`
`void` `setObject​(int parameterIndex, java.lang.Object x, int targetSqlType, int scaleOrLength)`
`void` `setRef​(int parameterIndex, java.sql.Ref x)`
`void` `setRowId​(int parameterIndex, java.sql.RowId x)`
`void` `setShort​(int parameterIndex, short x)`
`void` `setSQLXML​(int parameterIndex, java.sql.SQLXML xmlObject)`
`void` `setString​(int parameterIndex, java.lang.String x)`
`void` `setTime​(int parameterIndex, java.sql.Time x)`
`void` `setTime​(int parameterIndex, java.sql.Time x, java.util.Calendar calendar)`
`void` `setTimestamp​(int parameterIndex, java.sql.Timestamp x)`
`void` `setTimestamp​(int parameterIndex, java.sql.Timestamp x, java.util.Calendar calendar)`
`void` `setUnicodeStream​(int parameterIndex, java.io.InputStream x, int length)`
`void` `setURL​(int parameterIndex, java.net.URL x)`

### Methods inherited from class org.apache.calcite.avatica.AvaticaStatement

`addBatch, cancel, checkOpen, clearWarnings, close, close_, closeOnCompletion, execute, execute, execute, execute, executeBatchInternal, executeInternal, executeInternal, executeLargeUpdate, executeQuery, executeQueryInternal, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getBoundParameterValues, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getId, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getQueryTimeoutMillis, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getSignature, getStatementType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isWrapperFor, onResultSetClose, resetStatement, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, setQueryTimeoutMillis, setSignature, syncResults, 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

`setObject, setObject`

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

`addBatch, cancel, clearWarnings, close, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, execute, execute, execute, execute, 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, isSimpleIdentifier, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

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

`isWrapperFor, unwrap`

### Field Detail

#### resultSetMetaData

    private final java.sql.ResultSetMetaData resultSetMetaData

#### calendar

    private java.util.Calendar calendar

#### slots

    protected final TypedValue[] slots

#### parameterValueBatch

    protected final java.util.List<java.util.List<TypedValue>> parameterValueBatch

### Constructor Detail

#### AvaticaPreparedStatement

    protected AvaticaPreparedStatement​(AvaticaConnection connection,
                                       Meta.StatementHandle h,
                                       Meta.Signature signature,
                                       int resultSetType,
                                       int resultSetConcurrency,
                                       int resultSetHoldability)
                                throws java.sql.SQLException

Creates an AvaticaPreparedStatement.

Parameters:
  `connection` - Connection
  `h` - Statement handle
  `signature` - Result of preparing statement
  `resultSetType` - Result set type
  `resultSetConcurrency` - Result set concurrency
  `resultSetHoldability` - Result set holdability
Throws:
  `java.sql.SQLException` - If fails due to underlying implementation reasons.

### Method Detail

#### getParameterValues

    protected java.util.List<TypedValue> getParameterValues()

Description copied from class: `AvaticaStatement`
Returns the list of values of this statement's parameters.

Called at execute time. Not a public API.

The default implementation returns the empty list, because non-prepared statements have no parameters.

Overrides:
  `getParameterValues` in class `AvaticaStatement`
See Also:
  `AvaticaConnection.Trojan.getParameterValues(AvaticaStatement)`

#### copyParameterValues

    protected java.util.List<TypedValue> copyParameterValues()

Returns a copy of the current parameter values.

Returns:
  A copied list of the parameter values

#### getCalendar

    protected java.util.Calendar getCalendar()

Returns a calendar in the connection's time zone, creating one the first time this method is called.

Uses the calendar to offset date-time values when calling methods such as `setDate(int, Date)`.

A note on thread-safety. This method does not strictly need to be `synchronized`, because JDBC does not promise thread safety if different threads are accessing the same statement, or even different objects within a particular connection.

The calendar returned is to be used only within this statement, and JDBC only allows access to a statement from within one thread, so therefore does not need to be synchronized when accessed.

#### getParameterValueBatch

    protected java.util.List<java.util.List<TypedValue>> getParameterValueBatch()

#### executeQuery

    public java.sql.ResultSet executeQuery()
                                    throws java.sql.SQLException

Specified by:
  `executeQuery` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### getParameterMetaData

    public java.sql.ParameterMetaData getParameterMetaData()
                                                    throws java.sql.SQLException

Specified by:
  `getParameterMetaData` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### executeUpdate

    public final int executeUpdate()
                            throws java.sql.SQLException

Specified by:
  `executeUpdate` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### executeLargeUpdate

    public long executeLargeUpdate()
                            throws java.sql.SQLException

Specified by:
  `executeLargeUpdate` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNull

    public void setNull​(int parameterIndex,
                        int sqlType)
                 throws java.sql.SQLException

Specified by:
  `setNull` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBoolean

    public void setBoolean​(int parameterIndex,
                           boolean x)
                    throws java.sql.SQLException

Specified by:
  `setBoolean` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setByte

    public void setByte​(int parameterIndex,
                        byte x)
                 throws java.sql.SQLException

Specified by:
  `setByte` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setShort

    public void setShort​(int parameterIndex,
                         short x)
                  throws java.sql.SQLException

Specified by:
  `setShort` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setInt

    public void setInt​(int parameterIndex,
                       int x)
                throws java.sql.SQLException

Specified by:
  `setInt` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setLong

    public void setLong​(int parameterIndex,
                        long x)
                 throws java.sql.SQLException

Specified by:
  `setLong` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setFloat

    public void setFloat​(int parameterIndex,
                         float x)
                  throws java.sql.SQLException

Specified by:
  `setFloat` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setDouble

    public void setDouble​(int parameterIndex,
                          double x)
                   throws java.sql.SQLException

Specified by:
  `setDouble` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBigDecimal

    public void setBigDecimal​(int parameterIndex,
                              java.math.BigDecimal x)
                       throws java.sql.SQLException

Specified by:
  `setBigDecimal` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setString

    public void setString​(int parameterIndex,
                          java.lang.String x)
                   throws java.sql.SQLException

Specified by:
  `setString` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBytes

    public void setBytes​(int parameterIndex,
                         byte[] x)
                  throws java.sql.SQLException

Specified by:
  `setBytes` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setAsciiStream

    public void setAsciiStream​(int parameterIndex,
                               java.io.InputStream x,
                               int length)
                        throws java.sql.SQLException

Specified by:
  `setAsciiStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setUnicodeStream

    public void setUnicodeStream​(int parameterIndex,
                                 java.io.InputStream x,
                                 int length)
                          throws java.sql.SQLException

Specified by:
  `setUnicodeStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public void setBinaryStream​(int parameterIndex,
                                java.io.InputStream x,
                                int length)
                         throws java.sql.SQLException

Specified by:
  `setBinaryStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### clearParameters

    public void clearParameters()
                         throws java.sql.SQLException

Specified by:
  `clearParameters` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setObject

    public void setObject​(int parameterIndex,
                          java.lang.Object x,
                          int targetSqlType)
                   throws java.sql.SQLException

Specified by:
  `setObject` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setObject

    public void setObject​(int parameterIndex,
                          java.lang.Object x)
                   throws java.sql.SQLException

Specified by:
  `setObject` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### execute

    public boolean execute()
                    throws java.sql.SQLException

Specified by:
  `execute` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### addBatch

    public void addBatch()
                  throws java.sql.SQLException

Specified by:
  `addBatch` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### clearBatch

    public void clearBatch()
                    throws java.sql.SQLException

Specified by:
  `clearBatch` in interface `java.sql.Statement`
Overrides:
  `clearBatch` in class `AvaticaStatement`
Throws:
  `java.sql.SQLException`

#### executeBatch

    public int[] executeBatch()
                       throws java.sql.SQLException

Specified by:
  `executeBatch` in interface `java.sql.Statement`
Overrides:
  `executeBatch` in class `AvaticaStatement`
Throws:
  `java.sql.SQLException`

#### executeLargeBatch

    public long[] executeLargeBatch()
                             throws java.sql.SQLException

Specified by:
  `executeLargeBatch` in interface `java.sql.Statement`
Overrides:
  `executeLargeBatch` in class `AvaticaStatement`
Throws:
  `java.sql.SQLException`

#### setCharacterStream

    public void setCharacterStream​(int parameterIndex,
                                   java.io.Reader reader,
                                   int length)
                            throws java.sql.SQLException

Specified by:
  `setCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setRef

    public void setRef​(int parameterIndex,
                       java.sql.Ref x)
                throws java.sql.SQLException

Specified by:
  `setRef` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBlob

    public void setBlob​(int parameterIndex,
                        java.sql.Blob x)
                 throws java.sql.SQLException

Specified by:
  `setBlob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setClob

    public void setClob​(int parameterIndex,
                        java.sql.Clob x)
                 throws java.sql.SQLException

Specified by:
  `setClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setArray

    public void setArray​(int parameterIndex,
                         java.sql.Array x)
                  throws java.sql.SQLException

Specified by:
  `setArray` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### getMetaData

    public java.sql.ResultSetMetaData getMetaData()
                                           throws java.sql.SQLException

Specified by:
  `getMetaData` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setDate

    public void setDate​(int parameterIndex,
                        java.sql.Date x,
                        java.util.Calendar calendar)
                 throws java.sql.SQLException

Specified by:
  `setDate` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setDate

    public void setDate​(int parameterIndex,
                        java.sql.Date x)
                 throws java.sql.SQLException

Specified by:
  `setDate` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setTime

    public void setTime​(int parameterIndex,
                        java.sql.Time x,
                        java.util.Calendar calendar)
                 throws java.sql.SQLException

Specified by:
  `setTime` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setTime

    public void setTime​(int parameterIndex,
                        java.sql.Time x)
                 throws java.sql.SQLException

Specified by:
  `setTime` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setTimestamp

    public void setTimestamp​(int parameterIndex,
                             java.sql.Timestamp x,
                             java.util.Calendar calendar)
                      throws java.sql.SQLException

Specified by:
  `setTimestamp` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setTimestamp

    public void setTimestamp​(int parameterIndex,
                             java.sql.Timestamp x)
                      throws java.sql.SQLException

Specified by:
  `setTimestamp` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNull

    public void setNull​(int parameterIndex,
                        int sqlType,
                        java.lang.String typeName)
                 throws java.sql.SQLException

Specified by:
  `setNull` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setURL

    public void setURL​(int parameterIndex,
                       java.net.URL x)
                throws java.sql.SQLException

Specified by:
  `setURL` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setObject

    public void setObject​(int parameterIndex,
                          java.lang.Object x,
                          int targetSqlType,
                          int scaleOrLength)
                   throws java.sql.SQLException

Specified by:
  `setObject` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setRowId

    public void setRowId​(int parameterIndex,
                         java.sql.RowId x)
                  throws java.sql.SQLException

Specified by:
  `setRowId` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNString

    public void setNString​(int parameterIndex,
                           java.lang.String value)
                    throws java.sql.SQLException

Specified by:
  `setNString` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNCharacterStream

    public void setNCharacterStream​(int parameterIndex,
                                    java.io.Reader value,
                                    long length)
                             throws java.sql.SQLException

Specified by:
  `setNCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNClob

    public void setNClob​(int parameterIndex,
                         java.sql.NClob value)
                  throws java.sql.SQLException

Specified by:
  `setNClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setClob

    public void setClob​(int parameterIndex,
                        java.io.Reader reader,
                        long length)
                 throws java.sql.SQLException

Specified by:
  `setClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBlob

    public void setBlob​(int parameterIndex,
                        java.io.InputStream inputStream,
                        long length)
                 throws java.sql.SQLException

Specified by:
  `setBlob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNClob

    public void setNClob​(int parameterIndex,
                         java.io.Reader reader,
                         long length)
                  throws java.sql.SQLException

Specified by:
  `setNClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setSQLXML

    public void setSQLXML​(int parameterIndex,
                          java.sql.SQLXML xmlObject)
                   throws java.sql.SQLException

Specified by:
  `setSQLXML` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setAsciiStream

    public void setAsciiStream​(int parameterIndex,
                               java.io.InputStream x,
                               long length)
                        throws java.sql.SQLException

Specified by:
  `setAsciiStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public void setBinaryStream​(int parameterIndex,
                                java.io.InputStream x,
                                long length)
                         throws java.sql.SQLException

Specified by:
  `setBinaryStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setCharacterStream

    public void setCharacterStream​(int parameterIndex,
                                   java.io.Reader reader,
                                   long length)
                            throws java.sql.SQLException

Specified by:
  `setCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setAsciiStream

    public void setAsciiStream​(int parameterIndex,
                               java.io.InputStream x)
                        throws java.sql.SQLException

Specified by:
  `setAsciiStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBinaryStream

    public void setBinaryStream​(int parameterIndex,
                                java.io.InputStream x)
                         throws java.sql.SQLException

Specified by:
  `setBinaryStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setCharacterStream

    public void setCharacterStream​(int parameterIndex,
                                   java.io.Reader reader)
                            throws java.sql.SQLException

Specified by:
  `setCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNCharacterStream

    public void setNCharacterStream​(int parameterIndex,
                                    java.io.Reader value)
                             throws java.sql.SQLException

Specified by:
  `setNCharacterStream` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setClob

    public void setClob​(int parameterIndex,
                        java.io.Reader reader)
                 throws java.sql.SQLException

Specified by:
  `setClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setBlob

    public void setBlob​(int parameterIndex,
                        java.io.InputStream inputStream)
                 throws java.sql.SQLException

Specified by:
  `setBlob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### setNClob

    public void setNClob​(int parameterIndex,
                         java.io.Reader reader)
                  throws java.sql.SQLException

Specified by:
  `setNClob` in interface `java.sql.PreparedStatement`
Throws:
  `java.sql.SQLException`

#### getParameter

    protected AvaticaParameter getParameter​(int param)
                                     throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getSite

    protected AvaticaSite getSite​(int param)
                           throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getParameterCount

    public int getParameterCount()

Specified by:
  `getParameterCount` in interface `java.sql.ParameterMetaData`

#### isNullable

    public int isNullable​(int param)
                   throws java.sql.SQLException

Specified by:
  `isNullable` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### isSigned

    public boolean isSigned​(int index)
                     throws java.sql.SQLException

Specified by:
  `isSigned` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getPrecision

    public int getPrecision​(int index)
                     throws java.sql.SQLException

Specified by:
  `getPrecision` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getScale

    public int getScale​(int index)
                 throws java.sql.SQLException

Specified by:
  `getScale` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getParameterType

    public int getParameterType​(int index)
                         throws java.sql.SQLException

Specified by:
  `getParameterType` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getParameterTypeName

    public java.lang.String getParameterTypeName​(int index)
                                          throws java.sql.SQLException

Specified by:
  `getParameterTypeName` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getParameterClassName

    public java.lang.String getParameterClassName​(int index)
                                           throws java.sql.SQLException

Specified by:
  `getParameterClassName` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getParameterMode

    public int getParameterMode​(int param)
                         throws java.sql.SQLException

Specified by:
  `getParameterMode` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`