CallableStatement
Date: 2018-05-01

com.mysql.jdbc

## Class CallableStatement

- java.lang.Object
- - com.mysql.jdbc.StatementImpl
  - - com.mysql.jdbc.PreparedStatement
    - - com.mysql.jdbc.CallableStatement

- All Implemented Interfaces:
    Wrapper, java.lang.AutoCloseable, java.sql.CallableStatement, java.sql.PreparedStatement, java.sql.Statement
  Direct Known Subclasses:
    JDBC4CallableStatement

      public class CallableStatement
      extends PreparedStatement
      implements java.sql.CallableStatement

  Representation of stored procedures for JDBC

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `CallableStatement.CallableStatementParam`
    `protected class` | `CallableStatement.CallableStatementParamInfo`

    - ### Nested classes/interfaces inherited from class com.mysql.jdbc.PreparedStatement

      `PreparedStatement.AppendingBatchVisitor, PreparedStatement.BatchParams, PreparedStatement.BatchVisitor, PreparedStatement.EmulatedPreparedStatementBindings, PreparedStatement.EndPoint, PreparedStatement.ParseInfo`

    - ### Nested classes/interfaces inherited from class com.mysql.jdbc.StatementImpl

      `StatementImpl.CancelTask`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static java.lang.reflect.Constructor<?>` | `JDBC_4_CSTMT_2_ARGS_CTOR`
    `protected static java.lang.reflect.Constructor<?>` | `JDBC_4_CSTMT_4_ARGS_CTOR`
    `protected boolean` | `outputParamWasNull`
    `protected CallableStatement.CallableStatementParamInfo` | `paramInfo`

    - ### Fields inherited from class com.mysql.jdbc.PreparedStatement

      `batchCommandIndex, batchedValuesClause, batchHasPlainStatements, firstCharOfStmt, isLoadDataQuery, isNull, numberOfExecutions, originalSql, parameterCount, parameterMetaData, parameterTypes, parseInfo, rewrittenBatchSize, serverSupportsFracSecs, useTrueBoolean, usingAnsiMode`

    - ### Fields inherited from class com.mysql.jdbc.StatementImpl

      `batchedArgs, batchedGeneratedKeys, cancelTimeoutMutex, charConverter, charEncoding, clearWarningsCalled, connection, connectionId, continueBatchOnError, currentCatalog, doEscapeProcessing, eventSink, generatedKeysResults, holdResultsOpenOverClose, isClosed, lastInsertId, lastQueryIsOnDupKeyUpdate, maxFieldSize, maxRows, ON_DUPLICATE_KEY_UPDATE_CLAUSE, openResults, pedantic, PING_MARKER, pingTarget, pointOfOrigin, profileSQL, results, resultSetConcurrency, resultSetType, retrieveGeneratedKeys, sendFractionalSeconds, statementCounter, statementExecuting, statementId, timeoutInMillis, updateCount, useLegacyDatetimeCode, USES_VARIABLES_FALSE, USES_VARIABLES_TRUE, USES_VARIABLES_UNKNOWN, useUsageAdvisor, version5013OrNewer, warningChain, wasCancelled, wasCancelledByTimeout`

    - ### 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
    `CallableStatement(MySQLConnection conn, CallableStatement.CallableStatementParamInfo paramInfo)` Creates a new CallableStatement
    `CallableStatement(MySQLConnection conn, java.lang.String sql, java.lang.String catalog, boolean isFunctionCall)` Creates a new CallableStatement

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addBatch()` JDBC 2.0 Add a set of parameters to the batch.
    `protected boolean` | `checkReadOnlySafeStatement()` Check to see if the statement is safe for read-only slaves after failover.
    `void` | `clearParameters()` In general, parameter values remain in force for repeated used of a Statement.
    `boolean` | `execute()` Some prepared statements return multiple results; the execute method handles these complex statements as well as the simpler form of statements handled by executeQuery and executeUpdate
    `int[]` | `executeBatch()` JDBC 2.0 Submit a batch of commands to the database for execution.
    `long[]` | `executeLargeBatch()` JDBC 4.2 Same as `StatementImpl.executeBatch()` but returns long[] instead of int[].
    `long` | `executeLargeUpdate()` JDBC 4.2
    `java.sql.ResultSet` | `executeQuery()` A Prepared SQL query is executed and its ResultSet is returned
    `int` | `executeUpdate()` Execute a SQL INSERT, UPDATE or DELETE statement.
    `protected java.lang.String` | `fixParameterName(java.lang.String paramNameIn)` Adds 'at' symbol to beginning of parameter names if needed.
    `java.sql.Array` | `getArray(int i)`
    `java.sql.Array` | `getArray(java.lang.String parameterName)`
    `java.math.BigDecimal` | `getBigDecimal(int parameterIndex)`
    `java.math.BigDecimal` | `getBigDecimal(int parameterIndex, int scale)` Deprecated.
    `java.math.BigDecimal` | `getBigDecimal(java.lang.String parameterName)`
    `java.sql.Blob` | `getBlob(int parameterIndex)`
    `java.sql.Blob` | `getBlob(java.lang.String parameterName)`
    `boolean` | `getBoolean(int parameterIndex)`
    `boolean` | `getBoolean(java.lang.String parameterName)`
    `byte` | `getByte(int parameterIndex)`
    `byte` | `getByte(java.lang.String parameterName)`
    `byte[]` | `getBytes(int parameterIndex)`
    `byte[]` | `getBytes(java.lang.String parameterName)`
    `java.sql.Clob` | `getClob(int parameterIndex)`
    `java.sql.Clob` | `getClob(java.lang.String parameterName)`
    `java.sql.Date` | `getDate(int parameterIndex)`
    `java.sql.Date` | `getDate(int parameterIndex, java.util.Calendar cal)`
    `java.sql.Date` | `getDate(java.lang.String parameterName)`
    `java.sql.Date` | `getDate(java.lang.String parameterName, java.util.Calendar cal)`
    `double` | `getDouble(int parameterIndex)`
    `double` | `getDouble(java.lang.String parameterName)`
    `float` | `getFloat(int parameterIndex)`
    `float` | `getFloat(java.lang.String parameterName)`
    `protected static CallableStatement` | `getInstance(MySQLConnection conn, CallableStatement.CallableStatementParamInfo paramInfo)` Creates a callable statement instance -- We need to provide factory-style methods so we can support both JDBC3 (and older) and JDBC4 runtimes, otherwise the class verifier complains when it tries to load JDBC4-only interface classes that are present in JDBC4 method signatures.
    `protected static CallableStatement` | `getInstance(MySQLConnection conn, java.lang.String sql, java.lang.String catalog, boolean isFunctionCall)` Creates a callable statement instance -- We need to provide factory-style methods so we can support both JDBC3 (and older) and JDBC4 runtimes, otherwise the class verifier complains when it tries to load JDBC4-only interface classes that are present in JDBC4 method signatures.
    `int` | `getInt(int parameterIndex)`
    `int` | `getInt(java.lang.String parameterName)`
    `long` | `getLong(int parameterIndex)`
    `long` | `getLong(java.lang.String parameterName)`
    `protected int` | `getNamedParamIndex(java.lang.String paramName, boolean forOut)`
    `java.lang.Object` | `getObject(int parameterIndex)`
    `<T> T` | `getObject(int parameterIndex, java.lang.Class<T> type)`
    `java.lang.Object` | `getObject(int parameterIndex, java.util.Map<java.lang.String,java.lang.Class<?>> map)`
    `java.lang.Object` | `getObject(java.lang.String parameterName)`
    `<T> T` | `getObject(java.lang.String parameterName, java.lang.Class<T> type)`
    `java.lang.Object` | `getObject(java.lang.String parameterName, java.util.Map<java.lang.String,java.lang.Class<?>> map)`
    `protected ResultSetInternalMethods` | `getOutputParameters(int paramIndex)` Returns the ResultSet that holds the output parameters, or throws an appropriate exception if none exist, or they weren't returned.
    `protected int` | `getParameterIndexOffset()` For calling stored functions, this will be -1 as we don't really count the first '?'
    `java.sql.ParameterMetaData` | `getParameterMetaData()`
    `java.sql.Ref` | `getRef(int parameterIndex)`
    `java.sql.Ref` | `getRef(java.lang.String parameterName)`
    `short` | `getShort(int parameterIndex)`
    `short` | `getShort(java.lang.String parameterName)`
    `java.lang.String` | `getString(int parameterIndex)`
    `java.lang.String` | `getString(java.lang.String parameterName)`
    `java.sql.Time` | `getTime(int parameterIndex)`
    `java.sql.Time` | `getTime(int parameterIndex, java.util.Calendar cal)`
    `java.sql.Time` | `getTime(java.lang.String parameterName)`
    `java.sql.Time` | `getTime(java.lang.String parameterName, java.util.Calendar cal)`
    `java.sql.Timestamp` | `getTimestamp(int parameterIndex)`
    `java.sql.Timestamp` | `getTimestamp(int parameterIndex, java.util.Calendar cal)`
    `java.sql.Timestamp` | `getTimestamp(java.lang.String parameterName)`
    `java.sql.Timestamp` | `getTimestamp(java.lang.String parameterName, java.util.Calendar cal)`
    `java.net.URL` | `getURL(int parameterIndex)`
    `java.net.URL` | `getURL(java.lang.String parameterName)`
    `protected int` | `mapOutputParameterIndexToRsIndex(int paramIndex)`
    `void` | `registerOutParameter(int parameterIndex, int sqlType)`
    `void` | `registerOutParameter(int parameterIndex, int sqlType, int scale)`
    `void` | `registerOutParameter(int parameterIndex, int sqlType, java.lang.String typeName)`
    `void` | `registerOutParameter(java.lang.String parameterName, int sqlType)`
    `void` | `registerOutParameter(java.lang.String parameterName, int sqlType, int scale)`
    `void` | `registerOutParameter(java.lang.String parameterName, int sqlType, java.lang.String typeName)`
    `void` | `setAsciiStream(java.lang.String parameterName, java.io.InputStream x)`
    `void` | `setAsciiStream(java.lang.String parameterName, java.io.InputStream x, int length)`
    `void` | `setAsciiStream(java.lang.String parameterName, java.io.InputStream x, long length)`
    `void` | `setBigDecimal(java.lang.String parameterName, java.math.BigDecimal x)`
    `void` | `setBinaryStream(java.lang.String parameterName, java.io.InputStream x)`
    `void` | `setBinaryStream(java.lang.String parameterName, java.io.InputStream x, int length)`
    `void` | `setBinaryStream(java.lang.String parameterName, java.io.InputStream x, long length)`
    `void` | `setBlob(java.lang.String parameterName, java.sql.Blob x)`
    `void` | `setBlob(java.lang.String parameterName, java.io.InputStream inputStream)`
    `void` | `setBlob(java.lang.String parameterName, java.io.InputStream inputStream, long length)`
    `void` | `setBoolean(java.lang.String parameterName, boolean x)`
    `void` | `setByte(java.lang.String parameterName, byte x)`
    `void` | `setBytes(java.lang.String parameterName, byte[] x)`
    `void` | `setCharacterStream(java.lang.String parameterName, java.io.Reader reader)`
    `void` | `setCharacterStream(java.lang.String parameterName, java.io.Reader reader, int length)`
    `void` | `setCharacterStream(java.lang.String parameterName, java.io.Reader reader, long length)`
    `void` | `setClob(java.lang.String parameterName, java.sql.Clob x)`
    `void` | `setClob(java.lang.String parameterName, java.io.Reader reader)`
    `void` | `setClob(java.lang.String parameterName, java.io.Reader reader, long length)`
    `void` | `setDate(java.lang.String parameterName, java.sql.Date x)`
    `void` | `setDate(java.lang.String parameterName, java.sql.Date x, java.util.Calendar cal)`
    `void` | `setDouble(java.lang.String parameterName, double x)`
    `void` | `setFloat(java.lang.String parameterName, float x)`
    `void` | `setInt(java.lang.String parameterName, int x)`
    `void` | `setLong(java.lang.String parameterName, long x)`
    `void` | `setNCharacterStream(java.lang.String parameterName, java.io.Reader value)`
    `void` | `setNCharacterStream(java.lang.String parameterName, java.io.Reader value, long length)`
    `void` | `setNull(java.lang.String parameterName, int sqlType)`
    `void` | `setNull(java.lang.String parameterName, int sqlType, java.lang.String typeName)`
    `void` | `setObject(java.lang.String parameterName, java.lang.Object x)`
    `void` | `setObject(java.lang.String parameterName, java.lang.Object x, int targetSqlType)`
    `void` | `setObject(java.lang.String parameterName, java.lang.Object x, int targetSqlType, int scale)`
    `void` | `setShort(java.lang.String parameterName, short x)`
    `void` | `setString(java.lang.String parameterName, java.lang.String x)`
    `void` | `setTime(java.lang.String parameterName, java.sql.Time x)`
    `void` | `setTime(java.lang.String parameterName, java.sql.Time x, java.util.Calendar cal)`
    `void` | `setTimestamp(java.lang.String parameterName, java.sql.Timestamp x)`
    `void` | `setTimestamp(java.lang.String parameterName, java.sql.Timestamp x, java.util.Calendar cal)`
    `void` | `setURL(java.lang.String parameterName, java.net.URL val)`
    `boolean` | `wasNull()`

    - ### Methods inherited from class com.mysql.jdbc.PreparedStatement

      `addBatch, asSql, asSql, canRewrite, canRewriteAsMultiValueInsertAtSqlLevel, checkBounds, clearBatch, computeBatchSize, computeMaxParameterSetSizeAndBatchSize, containsOnDuplicateKeyUpdateInSQL, detectFractionalSecondsSupport, executeBatchedInserts, executeBatchInternal, executeBatchSerially, executeInternal, executePreparedBatchAsMultiStatement, executeUpdateInternal, executeUpdateInternal, fillSendPacket, fillSendPacket, getBytesRepresentation, getBytesRepresentationForBatch, getDateTime, getInstance, getInstance, getInstance, getLocationOfOnDuplicateKeyUpdate, getMetaData, getNonRewrittenSql, getParameterBindings, getParseInfo, getPreparedSql, getRewrittenBatchSize, getUpdateCount, getValuesClause, isNull, isSelectQuery, prepareBatchedInsertSQL, readFully, realClose, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setByte, setBytes, setBytes, setBytesNoEscape, setBytesNoEscapeNoQuotes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDouble, setFloat, setInt, setInternal, setInternal, setLong, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNString, setNull, setNull, setObject, setObject, setObject, setOneBatchedParameterSet, setRef, setRetrieveGeneratedKeys, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL, toString`

    - ### Methods inherited from class com.mysql.jdbc.StatementImpl

      `cancel, checkClosed, checkForDml, checkNullOrEmptyQuery, clearWarnings, close, closeAllOpenResults, closeOnCompletion, containsOnDuplicateKeyInString, createStreamingResultSet, disableStreamingResults, doPingInstead, enableStreamingResults, execute, execute, execute, execute, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeSimpleNonQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, executeUpdateInternal, findStartOfStatement, generatePingResultSet, getBatchedArgs, getBatchedGeneratedKeys, getBatchedGeneratedKeys, getCalendarInstanceForSessionOrNew, getConnection, getExceptionInterceptor, getFetchDirection, getFetchSize, getGeneratedKeys, getGeneratedKeysInternal, getGeneratedKeysInternal, getId, getLargeMaxRows, getLargeUpdateCount, getLastInsertID, getLocalInfileInputStream, getLongUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getOnDuplicateKeyLocation, getOpenResultSetCount, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetInternal, getResultSetType, getWarnings, handleExceptionForBatch, hasDeadlockOrTimeoutRolledBackTx, implicitlyCloseAllOpenResults, isClosed, isCloseOnCompletion, isPoolable, isWrapperFor, processMultiCountsAndKeys, removeOpenResultSet, resetCancelledState, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setHoldResultsOpenOverClose, setLargeMaxRows, setLocalInfileInputStream, setMaxFieldSize, setMaxRows, setPingTarget, setPoolable, setQueryTimeout, setResultSetConcurrency, setResultSetType, setupStreamingTimeout, statementBegins, unwrap`

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

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

    - ### Methods inherited from interface java.sql.CallableStatement

      `getCharacterStream, getCharacterStream, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getRowId, getRowId, getSQLXML, getSQLXML, setNClob, setNClob, setNClob, setNString, setRowId, setSQLXML`

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

      `getMetaData, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNull, setNull, setObject, setObject, setObject, setRef, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL`

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

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

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

      `isWrapperFor, unwrap`

- - ### Field Detail

    - #### JDBC_4_CSTMT_2_ARGS_CTOR

          protected static final java.lang.reflect.Constructor<?> JDBC_4_CSTMT_2_ARGS_CTOR

    - #### JDBC_4_CSTMT_4_ARGS_CTOR

          protected static final java.lang.reflect.Constructor<?> JDBC_4_CSTMT_4_ARGS_CTOR

    - #### outputParamWasNull

          protected boolean outputParamWasNull

    - #### paramInfo

          protected CallableStatement.CallableStatementParamInfo paramInfo

  - ### Constructor Detail

    - #### CallableStatement

          public CallableStatement(MySQLConnection conn,
                           CallableStatement.CallableStatementParamInfo paramInfo)
                            throws java.sql.SQLException

      Creates a new CallableStatement
      Parameters:
        `conn` - the connection creating this statement
        `paramInfo` - the SQL to prepare
      Throws:
        `java.sql.SQLException` - if an error occurs

    - #### CallableStatement

          public CallableStatement(MySQLConnection conn,
                           java.lang.String sql,
                           java.lang.String catalog,
                           boolean isFunctionCall)
                            throws java.sql.SQLException

      Creates a new CallableStatement
      Parameters:
        `conn` - the connection creating this statement
        `sql` - the SQL to prepare
        `catalog` - the current catalog
      Throws:
        `java.sql.SQLException` - if an error occurs

  - ### Method Detail

    - #### getInstance

          protected static CallableStatement getInstance(MySQLConnection conn,
                                      java.lang.String sql,
                                      java.lang.String catalog,
                                      boolean isFunctionCall)
                                                  throws java.sql.SQLException

      Creates a callable statement instance -- We need to provide factory-style methods so we can support both JDBC3 (and older) and JDBC4 runtimes, otherwise the class verifier complains when it tries to load JDBC4-only interface classes that are present in JDBC4 method signatures.
      Throws:
        `java.sql.SQLException`

    - #### getInstance

          protected static CallableStatement getInstance(MySQLConnection conn,
                                      CallableStatement.CallableStatementParamInfo paramInfo)
                                                  throws java.sql.SQLException

      Creates a callable statement instance -- We need to provide factory-style methods so we can support both JDBC3 (and older) and JDBC4 runtimes, otherwise the class verifier complains when it tries to load JDBC4-only interface classes that are present in JDBC4 method signatures.
      Throws:
        `java.sql.SQLException`

    - #### addBatch

          public void addBatch()
                        throws java.sql.SQLException

      Description copied from class: `PreparedStatement`
      JDBC 2.0 Add a set of parameters to the batch.
      Specified by:
        `addBatch` in interface `java.sql.PreparedStatement`
      Overrides:
        `addBatch` in class `PreparedStatement`
      Throws:
        `java.sql.SQLException` - if a database-access error occurs.
      See Also:
        `StatementImpl.addBatch(java.lang.String)`

    - #### clearParameters

          public void clearParameters()
                               throws java.sql.SQLException

      Description copied from class: `PreparedStatement`
      In general, parameter values remain in force for repeated used of a Statement. Setting a parameter value automatically clears its previous value. However, in some cases, it is useful to immediately release the resources used by the current parameter values; this can be done by calling clearParameters
      Specified by:
        `clearParameters` in interface `java.sql.PreparedStatement`
      Overrides:
        `clearParameters` in class `PreparedStatement`
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### execute

          public boolean execute()
                          throws java.sql.SQLException

      Description copied from class: `PreparedStatement`
      Some prepared statements return multiple results; the execute method handles these complex statements as well as the simpler form of statements handled by executeQuery and executeUpdate
      Specified by:
        `execute` in interface `java.sql.PreparedStatement`
      Overrides:
        `execute` in class `PreparedStatement`
      Returns:
        true if the next result is a ResultSet; false if it is an update count or there are no more results
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### executeQuery

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

      Description copied from class: `PreparedStatement`
      A Prepared SQL query is executed and its ResultSet is returned
      Specified by:
        `executeQuery` in interface `java.sql.PreparedStatement`
      Overrides:
        `executeQuery` in class `PreparedStatement`
      Returns:
        a ResultSet that contains the data produced by the query - never null
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### executeUpdate

          public int executeUpdate()
                            throws java.sql.SQLException

      Description copied from class: `PreparedStatement`
      Execute a SQL INSERT, UPDATE or DELETE statement. In addition, SQL statements that return nothing such as SQL DDL statements can be executed.
      Specified by:
        `executeUpdate` in interface `java.sql.PreparedStatement`
      Overrides:
        `executeUpdate` in class `PreparedStatement`
      Returns:
        either the row count for INSERT, UPDATE or DELETE; or 0 for SQL statements that return nothing.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### fixParameterName

          protected java.lang.String fixParameterName(java.lang.String paramNameIn)
                                               throws java.sql.SQLException

      Adds 'at' symbol to beginning of parameter names if needed.
      Parameters:
        `paramNameIn` - the parameter name to 'fix'
      Returns:
        the parameter name with an 'a' prepended, if needed
      Throws:
        `java.sql.SQLException` - if the parameter name is null or empty.

    - #### getArray

          public java.sql.Array getArray(int i)
                                  throws java.sql.SQLException

      Specified by:
        `getArray` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getArray(int)`

    - #### getArray

          public java.sql.Array getArray(java.lang.String parameterName)
                                  throws java.sql.SQLException

      Specified by:
        `getArray` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getArray(java.lang.String)`

    - #### getBigDecimal

          public java.math.BigDecimal getBigDecimal(int parameterIndex)
                                             throws java.sql.SQLException

      Specified by:
        `getBigDecimal` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getBigDecimal(int)`

    - #### getBigDecimal

          @Deprecated
          public java.math.BigDecimal getBigDecimal(int parameterIndex,
                                                      int scale)
                                             throws java.sql.SQLException

      Deprecated.
      Specified by:
        `getBigDecimal` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` -
        `scale` -
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getBigDecimal(int, int)`

    - #### getBigDecimal

          public java.math.BigDecimal getBigDecimal(java.lang.String parameterName)
                                             throws java.sql.SQLException

      Specified by:
        `getBigDecimal` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getBigDecimal(java.lang.String)`

    - #### getBlob

          public java.sql.Blob getBlob(int parameterIndex)
                                throws java.sql.SQLException

      Specified by:
        `getBlob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getBlob(int)`

    - #### getBlob

          public java.sql.Blob getBlob(java.lang.String parameterName)
                                throws java.sql.SQLException

      Specified by:
        `getBlob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getBlob(java.lang.String)`

    - #### getBoolean

          public boolean getBoolean(int parameterIndex)
                             throws java.sql.SQLException

      Specified by:
        `getBoolean` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getBoolean(int)`

    - #### getBoolean

          public boolean getBoolean(java.lang.String parameterName)
                             throws java.sql.SQLException

      Specified by:
        `getBoolean` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getBoolean(java.lang.String)`

    - #### getByte

          public byte getByte(int parameterIndex)
                       throws java.sql.SQLException

      Specified by:
        `getByte` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getByte(int)`

    - #### getByte

          public byte getByte(java.lang.String parameterName)
                       throws java.sql.SQLException

      Specified by:
        `getByte` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getByte(java.lang.String)`

    - #### getBytes

          public byte[] getBytes(int parameterIndex)
                          throws java.sql.SQLException

      Specified by:
        `getBytes` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getBytes(int)`

    - #### getBytes

          public byte[] getBytes(java.lang.String parameterName)
                          throws java.sql.SQLException

      Specified by:
        `getBytes` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getBytes(java.lang.String)`

    - #### getClob

          public java.sql.Clob getClob(int parameterIndex)
                                throws java.sql.SQLException

      Specified by:
        `getClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getClob(int)`

    - #### getClob

          public java.sql.Clob getClob(java.lang.String parameterName)
                                throws java.sql.SQLException

      Specified by:
        `getClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getClob(java.lang.String)`

    - #### getDate

          public java.sql.Date getDate(int parameterIndex)
                                throws java.sql.SQLException

      Specified by:
        `getDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getDate(int)`

    - #### getDate

          public java.sql.Date getDate(int parameterIndex,
                              java.util.Calendar cal)
                                throws java.sql.SQLException

      Specified by:
        `getDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getDate(int, java.util.Calendar)`

    - #### getDate

          public java.sql.Date getDate(java.lang.String parameterName)
                                throws java.sql.SQLException

      Specified by:
        `getDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getDate(java.lang.String)`

    - #### getDate

          public java.sql.Date getDate(java.lang.String parameterName,
                              java.util.Calendar cal)
                                throws java.sql.SQLException

      Specified by:
        `getDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getDate(java.lang.String, java.util.Calendar)`

    - #### getDouble

          public double getDouble(int parameterIndex)
                           throws java.sql.SQLException

      Specified by:
        `getDouble` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getDouble(int)`

    - #### getDouble

          public double getDouble(java.lang.String parameterName)
                           throws java.sql.SQLException

      Specified by:
        `getDouble` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getDouble(java.lang.String)`

    - #### getFloat

          public float getFloat(int parameterIndex)
                         throws java.sql.SQLException

      Specified by:
        `getFloat` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getFloat(int)`

    - #### getFloat

          public float getFloat(java.lang.String parameterName)
                         throws java.sql.SQLException

      Specified by:
        `getFloat` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getFloat(java.lang.String)`

    - #### getInt

          public int getInt(int parameterIndex)
                     throws java.sql.SQLException

      Specified by:
        `getInt` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getInt(int)`

    - #### getInt

          public int getInt(java.lang.String parameterName)
                     throws java.sql.SQLException

      Specified by:
        `getInt` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getInt(java.lang.String)`

    - #### getLong

          public long getLong(int parameterIndex)
                       throws java.sql.SQLException

      Specified by:
        `getLong` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getLong(int)`

    - #### getLong

          public long getLong(java.lang.String parameterName)
                       throws java.sql.SQLException

      Specified by:
        `getLong` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getLong(java.lang.String)`

    - #### getNamedParamIndex

          protected int getNamedParamIndex(java.lang.String paramName,
                               boolean forOut)
                                    throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### getObject

          public java.lang.Object getObject(int parameterIndex)
                                     throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getObject(int)`

    - #### getObject

          public java.lang.Object getObject(int parameterIndex,
                                   java.util.Map<java.lang.String,java.lang.Class<?>> map)
                                     throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getObject(int, java.util.Map)`

    - #### getObject

          public java.lang.Object getObject(java.lang.String parameterName)
                                     throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getObject(java.lang.String)`

    - #### getObject

          public java.lang.Object getObject(java.lang.String parameterName,
                                   java.util.Map<java.lang.String,java.lang.Class<?>> map)
                                     throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getObject(java.lang.String, java.util.Map)`

    - #### getObject

          public <T> T getObject(int parameterIndex,
                        java.lang.Class<T> type)
                      throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getObject

          public <T> T getObject(java.lang.String parameterName,
                        java.lang.Class<T> type)
                      throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getOutputParameters

          protected ResultSetInternalMethods getOutputParameters(int paramIndex)
                                                          throws java.sql.SQLException

      Returns the ResultSet that holds the output parameters, or throws an appropriate exception if none exist, or they weren't returned.
      Returns:
        the ResultSet that holds the output parameters
      Throws:
        `java.sql.SQLException` - if no output parameters were defined, or if no output parameters were returned.

    - #### getParameterMetaData

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

      Specified by:
        `getParameterMetaData` in interface `java.sql.PreparedStatement`
      Overrides:
        `getParameterMetaData` in class `PreparedStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `PreparedStatement.getParameterMetaData()`

    - #### getRef

          public java.sql.Ref getRef(int parameterIndex)
                              throws java.sql.SQLException

      Specified by:
        `getRef` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getRef(int)`

    - #### getRef

          public java.sql.Ref getRef(java.lang.String parameterName)
                              throws java.sql.SQLException

      Specified by:
        `getRef` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getRef(java.lang.String)`

    - #### getShort

          public short getShort(int parameterIndex)
                         throws java.sql.SQLException

      Specified by:
        `getShort` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getShort(int)`

    - #### getShort

          public short getShort(java.lang.String parameterName)
                         throws java.sql.SQLException

      Specified by:
        `getShort` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getShort(java.lang.String)`

    - #### getString

          public java.lang.String getString(int parameterIndex)
                                     throws java.sql.SQLException

      Specified by:
        `getString` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getString(int)`

    - #### getString

          public java.lang.String getString(java.lang.String parameterName)
                                     throws java.sql.SQLException

      Specified by:
        `getString` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getString(java.lang.String)`

    - #### getTime

          public java.sql.Time getTime(int parameterIndex)
                                throws java.sql.SQLException

      Specified by:
        `getTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getTime(int)`

    - #### getTime

          public java.sql.Time getTime(int parameterIndex,
                              java.util.Calendar cal)
                                throws java.sql.SQLException

      Specified by:
        `getTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getTime(int, java.util.Calendar)`

    - #### getTime

          public java.sql.Time getTime(java.lang.String parameterName)
                                throws java.sql.SQLException

      Specified by:
        `getTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getTime(java.lang.String)`

    - #### getTime

          public java.sql.Time getTime(java.lang.String parameterName,
                              java.util.Calendar cal)
                                throws java.sql.SQLException

      Specified by:
        `getTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getTime(java.lang.String, java.util.Calendar)`

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp(int parameterIndex)
                                          throws java.sql.SQLException

      Specified by:
        `getTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getTimestamp(int)`

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp(int parameterIndex,
                                        java.util.Calendar cal)
                                          throws java.sql.SQLException

      Specified by:
        `getTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getTimestamp(int, java.util.Calendar)`

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp(java.lang.String parameterName)
                                          throws java.sql.SQLException

      Specified by:
        `getTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getTimestamp(java.lang.String)`

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp(java.lang.String parameterName,
                                        java.util.Calendar cal)
                                          throws java.sql.SQLException

      Specified by:
        `getTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getTimestamp(java.lang.String, java.util.Calendar)`

    - #### getURL

          public java.net.URL getURL(int parameterIndex)
                              throws java.sql.SQLException

      Specified by:
        `getURL` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getURL(int)`

    - #### getURL

          public java.net.URL getURL(java.lang.String parameterName)
                              throws java.sql.SQLException

      Specified by:
        `getURL` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.getURL(java.lang.String)`

    - #### mapOutputParameterIndexToRsIndex

          protected int mapOutputParameterIndexToRsIndex(int paramIndex)
                                                  throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

    - #### registerOutParameter

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

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.registerOutParameter(int, int)`

    - #### registerOutParameter

          public void registerOutParameter(int parameterIndex,
                                  int sqlType,
                                  int scale)
                                    throws java.sql.SQLException

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.registerOutParameter(int, int, int)`

    - #### registerOutParameter

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

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.registerOutParameter(int, int, java.lang.String)`

    - #### registerOutParameter

          public void registerOutParameter(java.lang.String parameterName,
                                  int sqlType)
                                    throws java.sql.SQLException

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.registerOutParameter(java.lang.String, int)`

    - #### registerOutParameter

          public void registerOutParameter(java.lang.String parameterName,
                                  int sqlType,
                                  int scale)
                                    throws java.sql.SQLException

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.registerOutParameter(java.lang.String, int, int)`

    - #### registerOutParameter

          public void registerOutParameter(java.lang.String parameterName,
                                  int sqlType,
                                  java.lang.String typeName)
                                    throws java.sql.SQLException

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.registerOutParameter(java.lang.String, int, java.lang.String)`

    - #### setAsciiStream

          public void setAsciiStream(java.lang.String parameterName,
                            java.io.InputStream x,
                            int length)
                              throws java.sql.SQLException

      Specified by:
        `setAsciiStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setAsciiStream(java.lang.String, java.io.InputStream, int)`

    - #### setBigDecimal

          public void setBigDecimal(java.lang.String parameterName,
                           java.math.BigDecimal x)
                             throws java.sql.SQLException

      Specified by:
        `setBigDecimal` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setBigDecimal(java.lang.String, java.math.BigDecimal)`

    - #### setBinaryStream

          public void setBinaryStream(java.lang.String parameterName,
                             java.io.InputStream x,
                             int length)
                               throws java.sql.SQLException

      Specified by:
        `setBinaryStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setBinaryStream(java.lang.String, java.io.InputStream, int)`

    - #### setBoolean

          public void setBoolean(java.lang.String parameterName,
                        boolean x)
                          throws java.sql.SQLException

      Specified by:
        `setBoolean` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setBoolean(java.lang.String, boolean)`

    - #### setByte

          public void setByte(java.lang.String parameterName,
                     byte x)
                       throws java.sql.SQLException

      Specified by:
        `setByte` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setByte(java.lang.String, byte)`

    - #### setBytes

          public void setBytes(java.lang.String parameterName,
                      byte[] x)
                        throws java.sql.SQLException

      Specified by:
        `setBytes` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setBytes(java.lang.String, byte[])`

    - #### setCharacterStream

          public void setCharacterStream(java.lang.String parameterName,
                                java.io.Reader reader,
                                int length)
                                  throws java.sql.SQLException

      Specified by:
        `setCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setCharacterStream(java.lang.String, java.io.Reader, int)`

    - #### setDate

          public void setDate(java.lang.String parameterName,
                     java.sql.Date x)
                       throws java.sql.SQLException

      Specified by:
        `setDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setDate(java.lang.String, java.sql.Date)`

    - #### setDate

          public void setDate(java.lang.String parameterName,
                     java.sql.Date x,
                     java.util.Calendar cal)
                       throws java.sql.SQLException

      Specified by:
        `setDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setDate(java.lang.String, java.sql.Date, java.util.Calendar)`

    - #### setDouble

          public void setDouble(java.lang.String parameterName,
                       double x)
                         throws java.sql.SQLException

      Specified by:
        `setDouble` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setDouble(java.lang.String, double)`

    - #### setFloat

          public void setFloat(java.lang.String parameterName,
                      float x)
                        throws java.sql.SQLException

      Specified by:
        `setFloat` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setFloat(java.lang.String, float)`

    - #### setInt

          public void setInt(java.lang.String parameterName,
                    int x)
                      throws java.sql.SQLException

      Specified by:
        `setInt` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setInt(java.lang.String, int)`

    - #### setLong

          public void setLong(java.lang.String parameterName,
                     long x)
                       throws java.sql.SQLException

      Specified by:
        `setLong` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setLong(java.lang.String, long)`

    - #### setNull

          public void setNull(java.lang.String parameterName,
                     int sqlType)
                       throws java.sql.SQLException

      Specified by:
        `setNull` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setNull(java.lang.String, int)`

    - #### setNull

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

      Specified by:
        `setNull` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setNull(java.lang.String, int, java.lang.String)`

    - #### setObject

          public void setObject(java.lang.String parameterName,
                       java.lang.Object x)
                         throws java.sql.SQLException

      Specified by:
        `setObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setObject(java.lang.String, java.lang.Object)`

    - #### setObject

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

      Specified by:
        `setObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setObject(java.lang.String, java.lang.Object, int)`

    - #### setObject

          public void setObject(java.lang.String parameterName,
                       java.lang.Object x,
                       int targetSqlType,
                       int scale)
                         throws java.sql.SQLException

      Specified by:
        `setObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setObject(java.lang.String, java.lang.Object, int, int)`

    - #### setShort

          public void setShort(java.lang.String parameterName,
                      short x)
                        throws java.sql.SQLException

      Specified by:
        `setShort` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setShort(java.lang.String, short)`

    - #### setString

          public void setString(java.lang.String parameterName,
                       java.lang.String x)
                         throws java.sql.SQLException

      Specified by:
        `setString` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setString(java.lang.String, java.lang.String)`

    - #### setTime

          public void setTime(java.lang.String parameterName,
                     java.sql.Time x)
                       throws java.sql.SQLException

      Specified by:
        `setTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setTime(java.lang.String, java.sql.Time)`

    - #### setTime

          public void setTime(java.lang.String parameterName,
                     java.sql.Time x,
                     java.util.Calendar cal)
                       throws java.sql.SQLException

      Specified by:
        `setTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setTime(java.lang.String, java.sql.Time, java.util.Calendar)`

    - #### setTimestamp

          public void setTimestamp(java.lang.String parameterName,
                          java.sql.Timestamp x)
                            throws java.sql.SQLException

      Specified by:
        `setTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setTimestamp(java.lang.String, java.sql.Timestamp)`

    - #### setTimestamp

          public void setTimestamp(java.lang.String parameterName,
                          java.sql.Timestamp x,
                          java.util.Calendar cal)
                            throws java.sql.SQLException

      Specified by:
        `setTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setTimestamp(java.lang.String, java.sql.Timestamp, java.util.Calendar)`

    - #### setURL

          public void setURL(java.lang.String parameterName,
                    java.net.URL val)
                      throws java.sql.SQLException

      Specified by:
        `setURL` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.setURL(java.lang.String, java.net.URL)`

    - #### wasNull

          public boolean wasNull()
                          throws java.sql.SQLException

      Specified by:
        `wasNull` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`
      See Also:
        `CallableStatement.wasNull()`

    - #### executeBatch

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

      Description copied from class: `StatementImpl`
      JDBC 2.0 Submit a batch of commands to the database for execution. This method is optional.
      Specified by:
        `executeBatch` in interface `java.sql.Statement`
      Overrides:
        `executeBatch` in class `StatementImpl`
      Returns:
        an array of update counts containing one element for each command in the batch. The array is ordered according to the order in which commands were inserted into the batch
      Throws:
        `java.sql.SQLException` - if a database-access error occurs, or the driver does not support batch statements
        `java.sql.BatchUpdateException`

    - #### getParameterIndexOffset

          protected int getParameterIndexOffset()

      Description copied from class: `PreparedStatement`
      For calling stored functions, this will be -1 as we don't really count the first '?' parameter marker, it's only syntax, but JDBC counts it as #1, otherwise it will return 0
      Overrides:
        `getParameterIndexOffset` in class `PreparedStatement`

    - #### setAsciiStream

          public void setAsciiStream(java.lang.String parameterName,
                            java.io.InputStream x)
                              throws java.sql.SQLException

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

    - #### setAsciiStream

          public void setAsciiStream(java.lang.String parameterName,
                            java.io.InputStream x,
                            long length)
                              throws java.sql.SQLException

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

    - #### setBinaryStream

          public void setBinaryStream(java.lang.String parameterName,
                             java.io.InputStream x)
                               throws java.sql.SQLException

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

    - #### setBinaryStream

          public void setBinaryStream(java.lang.String parameterName,
                             java.io.InputStream x,
                             long length)
                               throws java.sql.SQLException

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

    - #### setBlob

          public void setBlob(java.lang.String parameterName,
                     java.sql.Blob x)
                       throws java.sql.SQLException

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

    - #### setBlob

          public void setBlob(java.lang.String parameterName,
                     java.io.InputStream inputStream)
                       throws java.sql.SQLException

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

    - #### setBlob

          public void setBlob(java.lang.String parameterName,
                     java.io.InputStream inputStream,
                     long length)
                       throws java.sql.SQLException

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

    - #### setCharacterStream

          public void setCharacterStream(java.lang.String parameterName,
                                java.io.Reader reader)
                                  throws java.sql.SQLException

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

    - #### setCharacterStream

          public void setCharacterStream(java.lang.String parameterName,
                                java.io.Reader reader,
                                long length)
                                  throws java.sql.SQLException

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

    - #### setClob

          public void setClob(java.lang.String parameterName,
                     java.sql.Clob x)
                       throws java.sql.SQLException

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

    - #### setClob

          public void setClob(java.lang.String parameterName,
                     java.io.Reader reader)
                       throws java.sql.SQLException

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

    - #### setClob

          public void setClob(java.lang.String parameterName,
                     java.io.Reader reader,
                     long length)
                       throws java.sql.SQLException

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

    - #### setNCharacterStream

          public void setNCharacterStream(java.lang.String parameterName,
                                 java.io.Reader value)
                                   throws java.sql.SQLException

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

    - #### setNCharacterStream

          public void setNCharacterStream(java.lang.String parameterName,
                                 java.io.Reader value,
                                 long length)
                                   throws java.sql.SQLException

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

    - #### checkReadOnlySafeStatement

          protected boolean checkReadOnlySafeStatement()
                                                throws java.sql.SQLException

      Description copied from class: `PreparedStatement`
      Check to see if the statement is safe for read-only slaves after failover.
      Overrides:
        `checkReadOnlySafeStatement` in class `PreparedStatement`
      Returns:
        true if safe for read-only.
      Throws:
        `java.sql.SQLException`

    - #### executeLargeUpdate

          public long executeLargeUpdate()
                                  throws java.sql.SQLException

      JDBC 4.2
      Overrides:
        `executeLargeUpdate` in class `PreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### executeLargeBatch

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

      Description copied from class: `StatementImpl`
      JDBC 4.2 Same as `StatementImpl.executeBatch()` but returns long[] instead of int[].
      Overrides:
        `executeLargeBatch` in class `StatementImpl`
      Throws:
        `java.sql.SQLException`