com.mysql.jdbc
Class ServerPreparedStatement

java.lang.Object
  extended by com.mysql.jdbc.StatementImpl
      extended by com.mysql.jdbc.PreparedStatement
          extended by com.mysql.jdbc.ServerPreparedStatement
All Implemented Interfaces:
java.sql.PreparedStatement, java.sql.Statement, java.sql.Wrapper
Direct Known Subclasses:
JDBC4ServerPreparedStatement

public class ServerPreparedStatement
extends PreparedStatement

JDBC Interface for MySQL-4.1 and newer server-side PreparedStatements.


Nested Class Summary
(package private) static class ServerPreparedStatement.BatchedBindValues
           
static class ServerPreparedStatement.BindValue
           
 
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
protected static int BLOB_STREAM_READ_BUF_SIZE
           
protected  boolean isCached
           
 
Fields inherited from class com.mysql.jdbc.PreparedStatement
batchedValuesClause, batchHasPlainStatements, firstCharOfStmt, hasLimitClause, isLoadDataQuery, numberOfExecutions, originalSql, parameterCount, parameterMetaData, parameterTypes, parseInfo, rewrittenBatchSize, useTrueBoolean, usingAnsiMode
 
Fields inherited from class com.mysql.jdbc.StatementImpl
batchedArgs, batchedGeneratedKeys, cancelTimeoutMutex, charConverter, charEncoding, connection, connectionId, continueBatchOnError, currentCatalog, doEscapeProcessing, eventSink, holdResultsOpenOverClose, isClosed, lastInsertId, lastQueryIsOnDupKeyUpdate, maxFieldSize, maxRows, maxRowsChanged, openResults, pedantic, PING_MARKER, pingTarget, pointOfOrigin, profileSQL, results, resultSetConcurrency, resultSetType, retrieveGeneratedKeys, statementCounter, statementId, timeoutInMillis, updateCount, useLegacyDatetimeCode, USES_VARIABLES_FALSE, USES_VARIABLES_TRUE, USES_VARIABLES_UNKNOWN, useUsageAdvisor, 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
protected ServerPreparedStatement(ConnectionImpl conn, java.lang.String sql, java.lang.String catalog, int resultSetType, int resultSetConcurrency)
          Creates a new ServerPreparedStatement object.
 
Method Summary
 void addBatch()
          JDBC 2.0 Add a set of parameters to the batch.
protected  java.lang.String asSql(boolean quoteStreamsAndUnknowns)
           
 boolean canRewriteAsMultiValueInsertAtSqlLevel()
           
 boolean canRewriteAsMultivalueInsertStatement()
           
protected  void checkClosed()
          Checks if closed() has been called, and throws an exception if so
 void clearParameters()
          In general, parameter values remain in force for repeated used of a Statement.
 void close()
          Closes this prepared statement and releases all resources.
protected  long[] computeMaxParameterSetSizeAndBatchSize(int numBatchedArgs)
          Computes the maximum parameter set size, and entire batch size given the number of arguments in the batch.
protected  boolean containsOnDuplicateKeyUpdateInSQL()
           
protected  int[] executeBatchSerially(int batchTimeout)
          Executes the current batch of statements by executing them one-by-one.
protected  ResultSetInternalMethods executeInternal(int maxRowsToRetrieve, Buffer sendPacket, boolean createStreamingResultSet, boolean queryIsSelectOnly, Field[] metadataFromCache, boolean isBatch)
          Actually execute the prepared statement.
protected  Buffer fillSendPacket()
          Creates the packet that contains the query to be sent to the server.
protected  Buffer fillSendPacket(byte[][] batchedParameterStrings, java.io.InputStream[] batchedParameterStreams, boolean[] batchedIsStream, int[] batchedStreamLengths)
          Creates the packet that contains the query to be sent to the server.
protected  ServerPreparedStatement.BindValue getBinding(int parameterIndex, boolean forLongData)
          Returns the structure representing the value that (can be)/(is) bound at the given parameter index.
(package private)  byte[] getBytes(int parameterIndex)
           
protected static ServerPreparedStatement getInstance(ConnectionImpl conn, java.lang.String sql, java.lang.String catalog, int resultSetType, int resultSetConcurrency)
          Creates a prepared 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  int getLocationOfOnDuplicateKeyUpdate()
           
 java.sql.ResultSetMetaData getMetaData()
          The number, types and properties of a ResultSet's columns are provided by the getMetaData method.
 java.sql.ParameterMetaData getParameterMetaData()
           
protected  long getServerStatementId()
           
(package private)  boolean isNull(int paramIndex)
           
protected  boolean isOnDuplicateKeyUpdate()
           
protected  PreparedStatement prepareBatchedInsertSQL(ConnectionImpl localConn, int numBatches)
          Returns a prepared statement for the number of batched parameters, used when re-writing batch INSERTs.
protected  void realClose(boolean calledExplicitly, boolean closeOpenResults)
          Closes this connection and frees all resources.
protected  void rePrepare()
          Used by Connection when auto-reconnecting to retrieve 'lost' prepared statements.
 void setArray(int i, java.sql.Array x)
          JDBC 2.0 Set an Array parameter.
 void setAsciiStream(int parameterIndex, java.io.InputStream x, int length)
          When a very large ASCII value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.InputStream.
 void setBigDecimal(int parameterIndex, java.math.BigDecimal x)
          Set a parameter to a java.math.BigDecimal value.
 void setBinaryStream(int parameterIndex, java.io.InputStream x, int length)
          When a very large binary value is input to a LONGVARBINARY parameter, it may be more practical to send it via a java.io.InputStream.
 void setBlob(int parameterIndex, java.sql.Blob x)
          JDBC 2.0 Set a BLOB parameter.
 void setBoolean(int parameterIndex, boolean x)
          Set a parameter to a Java boolean value.
 void setByte(int parameterIndex, byte x)
          Set a parameter to a Java byte value.
 void setBytes(int parameterIndex, byte[] x)
          Set a parameter to a Java array of bytes.
 void setCharacterStream(int parameterIndex, java.io.Reader reader, int length)
          JDBC 2.0 When a very large UNICODE value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.Reader.
 void setClob(int parameterIndex, java.sql.Clob x)
          JDBC 2.0 Set a CLOB parameter.
protected  void setClosed(boolean flag)
           
 void setDate(int parameterIndex, java.sql.Date x)
          Set a parameter to a java.sql.Date value.
 void setDate(int parameterIndex, java.sql.Date x, java.util.Calendar cal)
          Set a parameter to a java.sql.Date value.
 void setDouble(int parameterIndex, double x)
          Set a parameter to a Java double value.
 void setFloat(int parameterIndex, float x)
          Set a parameter to a Java float value.
 void setInt(int parameterIndex, int x)
          Set a parameter to a Java int value.
 void setLong(int parameterIndex, long x)
          Set a parameter to a Java long value.
 void setNull(int parameterIndex, int sqlType)
          Set a parameter to SQL NULL Note: You must specify the parameters SQL type (although MySQL ignores it)
 void setNull(int parameterIndex, int sqlType, java.lang.String typeName)
          Set a parameter to SQL NULL.
protected  int setOneBatchedParameterSet(java.sql.PreparedStatement batchedStatement, int batchedParamIndex, java.lang.Object paramSet)
           
 void setRef(int i, java.sql.Ref x)
          JDBC 2.0 Set a REF(<structured-type>) parameter.
 void setShort(int parameterIndex, short x)
          Set a parameter to a Java short value.
 void setString(int parameterIndex, java.lang.String x)
          Set a parameter to a Java String value.
 void setTime(int parameterIndex, java.sql.Time x)
          Set a parameter to a java.sql.Time value.
 void setTime(int parameterIndex, java.sql.Time x, java.util.Calendar cal)
          Set a parameter to a java.sql.Time value.
 void setTimeInternal(int parameterIndex, java.sql.Time x, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward)
          Set a parameter to a java.sql.Time value.
 void setTimestamp(int parameterIndex, java.sql.Timestamp x)
          Set a parameter to a java.sql.Timestamp value.
 void setTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal)
          Set a parameter to a java.sql.Timestamp value.
protected  void setTimestampInternal(int parameterIndex, java.sql.Timestamp x, java.util.Calendar targetCalendar, java.util.TimeZone tz, boolean rollForward)
           
protected  void setType(ServerPreparedStatement.BindValue oldValue, int bufferType)
           
 void setUnicodeStream(int parameterIndex, java.io.InputStream x, int length)
          Deprecated.  
 void setURL(int parameterIndex, java.net.URL x)
           
 java.lang.String toString()
          Returns this PreparedStatement represented as a string.
 
Methods inherited from class com.mysql.jdbc.PreparedStatement
addBatch, asSql, canRewrite, checkReadOnlySafeStatement, clearBatch, computeBatchSize, execute, executeBatch, executeBatchedInserts, executePreparedBatchAsMultiStatement, executeQuery, executeUpdate, executeUpdate, executeUpdate, getBytesRepresentation, getBytesRepresentationForBatch, getInstance, getInstance, getInstance, getNonRewrittenSql, getParameterBindings, getParameterIndexOffset, getParseInfo, getPreparedSql, getRewrittenBatchSize, getUpdateCount, getValuesClause, isClosed, isSelectQuery, readFully, setAsciiStream, setAsciiStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBytes, setBytesNoEscape, setBytesNoEscapeNoQuotes, setCharacterStream, setCharacterStream, setClob, setClob, setInternal, setInternal, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNString, setObject, setObject, setObject, setResultSetConcurrency, setResultSetType, setRetrieveGeneratedKeys
 
Methods inherited from class com.mysql.jdbc.StatementImpl
cancel, checkForDml, checkNullOrEmptyQuery, clearWarnings, closeAllOpenResults, containsOnDuplicateKeyInString, createStreamingResultSet, disableStreamingResults, doPingInstead, enableStreamingResults, execute, execute, execute, execute, executeQuery, executeSimpleNonQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, executeUpdate, findStartOfStatement, generatePingResultSet, getBatchedGeneratedKeys, getBatchedGeneratedKeys, getCalendarInstanceForSessionOrNew, getConnection, getExceptionInterceptor, getFetchDirection, getFetchSize, getGeneratedKeys, getGeneratedKeysInternal, getGeneratedKeysInternal, getId, getLastInsertID, getLocalInfileInputStream, getLongUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getOnDuplicateKeyLocation, getOpenResultSetCount, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetInternal, getResultSetType, getWarnings, handleExceptionForBatch, hasDeadlockOrTimeoutRolledBackTx, isPoolable, isWrapperFor, processMultiCountsAndKeys, removeOpenResultSet, resetCancelledState, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setHoldResultsOpenOverClose, setLocalInfileInputStream, setMaxFieldSize, setMaxRows, setPingTarget, setPoolable, setQueryTimeout, unwrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.sql.PreparedStatement
setNClob, setRowId, setSQLXML
 
Methods inherited from interface java.sql.Statement
cancel, clearWarnings, execute, execute, execute, execute, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getWarnings, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
 
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
 

Field Detail

BLOB_STREAM_READ_BUF_SIZE

protected static final int BLOB_STREAM_READ_BUF_SIZE
See Also:
Constant Field Values

isCached

protected boolean isCached
Constructor Detail

ServerPreparedStatement

protected ServerPreparedStatement(ConnectionImpl conn,
                                  java.lang.String sql,
                                  java.lang.String catalog,
                                  int resultSetType,
                                  int resultSetConcurrency)
                           throws java.sql.SQLException
Creates a new ServerPreparedStatement object.

Parameters:
conn - the connection creating us.
sql - the SQL containing the statement to prepare.
catalog - the catalog in use when we were created.
Throws:
java.sql.SQLException - If an error occurs
Method Detail

getInstance

protected static ServerPreparedStatement getInstance(ConnectionImpl conn,
                                                     java.lang.String sql,
                                                     java.lang.String catalog,
                                                     int resultSetType,
                                                     int resultSetConcurrency)
                                              throws java.sql.SQLException
Creates a prepared 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
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)

asSql

protected java.lang.String asSql(boolean quoteStreamsAndUnknowns)
                          throws java.sql.SQLException
Overrides:
asSql in class PreparedStatement
Throws:
java.sql.SQLException

checkClosed

protected void checkClosed()
                    throws java.sql.SQLException
Description copied from class: StatementImpl
Checks if closed() has been called, and throws an exception if so

Overrides:
checkClosed in class StatementImpl
Throws:
java.sql.SQLException - if this statement has been closed

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
See Also:
PreparedStatement.clearParameters()

setClosed

protected void setClosed(boolean flag)

close

public void close()
           throws java.sql.SQLException
Description copied from class: PreparedStatement
Closes this prepared statement and releases all resources.

Specified by:
close in interface java.sql.Statement
Overrides:
close in class PreparedStatement
Throws:
java.sql.SQLException - if database error occurs.
See Also:
Statement.close()

executeBatchSerially

protected int[] executeBatchSerially(int batchTimeout)
                              throws java.sql.SQLException
Description copied from class: PreparedStatement
Executes the current batch of statements by executing them one-by-one.

Overrides:
executeBatchSerially in class PreparedStatement
Returns:
a list of update counts
Throws:
java.sql.SQLException - if an error occurs

executeInternal

protected ResultSetInternalMethods executeInternal(int maxRowsToRetrieve,
                                                   Buffer sendPacket,
                                                   boolean createStreamingResultSet,
                                                   boolean queryIsSelectOnly,
                                                   Field[] metadataFromCache,
                                                   boolean isBatch)
                                            throws java.sql.SQLException
Description copied from class: PreparedStatement
Actually execute the prepared statement. This is here so server-side PreparedStatements can re-use most of the code from this class.

Overrides:
executeInternal in class PreparedStatement
Parameters:
maxRowsToRetrieve - the max number of rows to return
sendPacket - the packet to send
createStreamingResultSet - should a 'streaming' result set be created?
queryIsSelectOnly - is this query doing a SELECT?
Returns:
the results as a ResultSet
Throws:
java.sql.SQLException - if an error occurs.
See Also:
com.mysql.jdbc.PreparedStatement#executeInternal(int, com.mysql.jdbc.Buffer, boolean, boolean)

fillSendPacket

protected Buffer fillSendPacket()
                         throws java.sql.SQLException
Description copied from class: PreparedStatement
Creates the packet that contains the query to be sent to the server.

Overrides:
fillSendPacket in class PreparedStatement
Returns:
A Buffer filled with the query representing the PreparedStatement.
Throws:
java.sql.SQLException - if an error occurs.
See Also:
PreparedStatement.fillSendPacket()

fillSendPacket

protected Buffer fillSendPacket(byte[][] batchedParameterStrings,
                                java.io.InputStream[] batchedParameterStreams,
                                boolean[] batchedIsStream,
                                int[] batchedStreamLengths)
                         throws java.sql.SQLException
Description copied from class: PreparedStatement
Creates the packet that contains the query to be sent to the server.

Overrides:
fillSendPacket in class PreparedStatement
Parameters:
batchedParameterStrings - the parameters as strings
batchedParameterStreams - the parameters as streams
batchedIsStream - is the given parameter a stream?
batchedStreamLengths - the lengths of the streams (if appropriate)
Returns:
a Buffer filled with the query that represents this statement
Throws:
java.sql.SQLException - if an error occurs.
See Also:
com.mysql.jdbc.PreparedStatement#fillSendPacket(byte, java.io.InputStream, boolean, int)

getBinding

protected ServerPreparedStatement.BindValue getBinding(int parameterIndex,
                                                       boolean forLongData)
                                                throws java.sql.SQLException
Returns the structure representing the value that (can be)/(is) bound at the given parameter index.

Parameters:
parameterIndex - 1-based
forLongData - is this for a stream?
Returns:
Throws:
java.sql.SQLException

getBytes

byte[] getBytes(int parameterIndex)
          throws java.sql.SQLException
Throws:
java.sql.SQLException
See Also:
com.mysql.jdbc.PreparedStatement#getBytes(int)

getMetaData

public java.sql.ResultSetMetaData getMetaData()
                                       throws java.sql.SQLException
Description copied from class: PreparedStatement
The number, types and properties of a ResultSet's columns are provided by the getMetaData method.

Specified by:
getMetaData in interface java.sql.PreparedStatement
Overrides:
getMetaData in class PreparedStatement
Returns:
the description of a ResultSet's columns
Throws:
java.sql.SQLException - if a database-access error occurs.
See Also:
PreparedStatement.getMetaData()

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()

isNull

boolean isNull(int paramIndex)
Overrides:
isNull in class PreparedStatement
See Also:
PreparedStatement.isNull(int)

realClose

protected void realClose(boolean calledExplicitly,
                         boolean closeOpenResults)
                  throws java.sql.SQLException
Closes this connection and frees all resources.

Overrides:
realClose in class PreparedStatement
Parameters:
calledExplicitly - was this called from close()?
Throws:
java.sql.SQLException - if an error occurs

rePrepare

protected void rePrepare()
                  throws java.sql.SQLException
Used by Connection when auto-reconnecting to retrieve 'lost' prepared statements.

Throws:
java.sql.SQLException - if an error occurs.

setArray

public void setArray(int i,
                     java.sql.Array x)
              throws java.sql.SQLException
Description copied from class: PreparedStatement
JDBC 2.0 Set an Array parameter.

Specified by:
setArray in interface java.sql.PreparedStatement
Overrides:
setArray in class PreparedStatement
Parameters:
i - the first parameter is 1, the second is 2, ...
x - an object representing an SQL array
Throws:
java.sql.SQLException - because this method is not implemented.
NotImplemented - DOCUMENT ME!
See Also:
PreparedStatement.setArray(int, java.sql.Array)

setAsciiStream

public void setAsciiStream(int parameterIndex,
                           java.io.InputStream x,
                           int length)
                    throws java.sql.SQLException
Description copied from class: PreparedStatement
When a very large ASCII value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.InputStream. JDBC will read the data from the stream as needed, until it reaches end-of-file. The JDBC driver will do any necessary conversion from ASCII to the database char format.

Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

Specified by:
setAsciiStream in interface java.sql.PreparedStatement
Overrides:
setAsciiStream in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
length - the number of bytes in the stream
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setAsciiStream(int, java.io.InputStream, int)

setBigDecimal

public void setBigDecimal(int parameterIndex,
                          java.math.BigDecimal x)
                   throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a java.math.BigDecimal value. The driver converts this to a SQL NUMERIC value when it sends it to the database.

Specified by:
setBigDecimal in interface java.sql.PreparedStatement
Overrides:
setBigDecimal in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setBigDecimal(int, java.math.BigDecimal)

setBinaryStream

public void setBinaryStream(int parameterIndex,
                            java.io.InputStream x,
                            int length)
                     throws java.sql.SQLException
Description copied from class: PreparedStatement
When a very large binary value is input to a LONGVARBINARY parameter, it may be more practical to send it via a java.io.InputStream. JDBC will read the data from the stream as needed, until it reaches end-of-file.

Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

Specified by:
setBinaryStream in interface java.sql.PreparedStatement
Overrides:
setBinaryStream in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
length - the number of bytes to read from the stream (ignored)
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setBinaryStream(int, java.io.InputStream, int)

setBlob

public void setBlob(int parameterIndex,
                    java.sql.Blob x)
             throws java.sql.SQLException
Description copied from class: PreparedStatement
JDBC 2.0 Set a BLOB parameter.

Specified by:
setBlob in interface java.sql.PreparedStatement
Overrides:
setBlob in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - an object representing a BLOB
Throws:
java.sql.SQLException - if a database error occurs
See Also:
PreparedStatement.setBlob(int, java.sql.Blob)

setBoolean

public void setBoolean(int parameterIndex,
                       boolean x)
                throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a Java boolean value. The driver converts this to a SQL BIT value when it sends it to the database.

Specified by:
setBoolean in interface java.sql.PreparedStatement
Overrides:
setBoolean in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setBoolean(int, boolean)

setByte

public void setByte(int parameterIndex,
                    byte x)
             throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a Java byte value. The driver converts this to a SQL TINYINT value when it sends it to the database.

Specified by:
setByte in interface java.sql.PreparedStatement
Overrides:
setByte in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setByte(int, byte)

setBytes

public void setBytes(int parameterIndex,
                     byte[] x)
              throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a Java array of bytes. The driver converts this to a SQL VARBINARY or LONGVARBINARY (depending on the argument's size relative to the driver's limits on VARBINARYs) when it sends it to the database.

Specified by:
setBytes in interface java.sql.PreparedStatement
Overrides:
setBytes in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
java.sql.PreparedStatement#setBytes(int, byte)

setCharacterStream

public void setCharacterStream(int parameterIndex,
                               java.io.Reader reader,
                               int length)
                        throws java.sql.SQLException
Description copied from class: PreparedStatement
JDBC 2.0 When a very large UNICODE value is input to a LONGVARCHAR parameter, it may be more practical to send it via a java.io.Reader. JDBC will read the data from the stream as needed, until it reaches end-of-file. The JDBC driver will do any necessary conversion from UNICODE to the database char format.

Note: This stream object can either be a standard Java stream object or your own subclass that implements the standard interface.

Specified by:
setCharacterStream in interface java.sql.PreparedStatement
Overrides:
setCharacterStream in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
reader - the java reader which contains the UNICODE data
length - the number of characters in the stream
Throws:
java.sql.SQLException - if a database-access error occurs.
See Also:
PreparedStatement.setCharacterStream(int, java.io.Reader, int)

setClob

public void setClob(int parameterIndex,
                    java.sql.Clob x)
             throws java.sql.SQLException
Description copied from class: PreparedStatement
JDBC 2.0 Set a CLOB parameter.

Specified by:
setClob in interface java.sql.PreparedStatement
Overrides:
setClob in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - an object representing a CLOB
Throws:
java.sql.SQLException - if a database error occurs
See Also:
PreparedStatement.setClob(int, java.sql.Clob)

setDate

public void setDate(int parameterIndex,
                    java.sql.Date x)
             throws java.sql.SQLException
Set a parameter to a java.sql.Date value. The driver converts this to a SQL DATE value when it sends it to the database.

Specified by:
setDate in interface java.sql.PreparedStatement
Overrides:
setDate in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the parameter value
Throws:
java.sql.SQLException - if a database-access error occurs.

setDate

public void setDate(int parameterIndex,
                    java.sql.Date x,
                    java.util.Calendar cal)
             throws java.sql.SQLException
Set a parameter to a java.sql.Date value. The driver converts this to a SQL DATE value when it sends it to the database.

Specified by:
setDate in interface java.sql.PreparedStatement
Overrides:
setDate in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the parameter value
cal - the calendar to interpret the date with
Throws:
java.sql.SQLException - if a database-access error occurs.

setDouble

public void setDouble(int parameterIndex,
                      double x)
               throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a Java double value. The driver converts this to a SQL DOUBLE value when it sends it to the database

Specified by:
setDouble in interface java.sql.PreparedStatement
Overrides:
setDouble in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setDouble(int, double)

setFloat

public void setFloat(int parameterIndex,
                     float x)
              throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a Java float value. The driver converts this to a SQL FLOAT value when it sends it to the database.

Specified by:
setFloat in interface java.sql.PreparedStatement
Overrides:
setFloat in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setFloat(int, float)

setInt

public void setInt(int parameterIndex,
                   int x)
            throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a Java int value. The driver converts this to a SQL INTEGER value when it sends it to the database.

Specified by:
setInt in interface java.sql.PreparedStatement
Overrides:
setInt in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setInt(int, int)

setLong

public void setLong(int parameterIndex,
                    long x)
             throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a Java long value. The driver converts this to a SQL BIGINT value when it sends it to the database.

Specified by:
setLong in interface java.sql.PreparedStatement
Overrides:
setLong in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setLong(int, long)

setNull

public void setNull(int parameterIndex,
                    int sqlType)
             throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to SQL NULL

Note: You must specify the parameters SQL type (although MySQL ignores it)

Specified by:
setNull in interface java.sql.PreparedStatement
Overrides:
setNull in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, etc...
sqlType - the SQL type code defined in java.sql.Types
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setNull(int, int)

setNull

public void setNull(int parameterIndex,
                    int sqlType,
                    java.lang.String typeName)
             throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to SQL NULL.

Note: You must specify the parameter's SQL type.

Specified by:
setNull in interface java.sql.PreparedStatement
Overrides:
setNull in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
sqlType - SQL type code defined by java.sql.Types
typeName - argument parameters for null
Throws:
java.sql.SQLException - if a database-access error occurs.
See Also:
PreparedStatement.setNull(int, int, java.lang.String)

setRef

public void setRef(int i,
                   java.sql.Ref x)
            throws java.sql.SQLException
Description copied from class: PreparedStatement
JDBC 2.0 Set a REF(<structured-type>) parameter.

Specified by:
setRef in interface java.sql.PreparedStatement
Overrides:
setRef in class PreparedStatement
Parameters:
i - the first parameter is 1, the second is 2, ...
x - an object representing data of an SQL REF Type
Throws:
java.sql.SQLException - if a database error occurs
NotImplemented - DOCUMENT ME!
See Also:
PreparedStatement.setRef(int, java.sql.Ref)

setShort

public void setShort(int parameterIndex,
                     short x)
              throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a Java short value. The driver converts this to a SQL SMALLINT value when it sends it to the database.

Specified by:
setShort in interface java.sql.PreparedStatement
Overrides:
setShort in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setShort(int, short)

setString

public void setString(int parameterIndex,
                      java.lang.String x)
               throws java.sql.SQLException
Description copied from class: PreparedStatement
Set a parameter to a Java String value. The driver converts this to a SQL VARCHAR or LONGVARCHAR value (depending on the arguments size relative to the driver's limits on VARCHARs) when it sends it to the database.

Specified by:
setString in interface java.sql.PreparedStatement
Overrides:
setString in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
PreparedStatement.setString(int, java.lang.String)

setTime

public void setTime(int parameterIndex,
                    java.sql.Time x)
             throws java.sql.SQLException
Set a parameter to a java.sql.Time value.

Specified by:
setTime in interface java.sql.PreparedStatement
Overrides:
setTime in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...));
x - the parameter value
Throws:
java.sql.SQLException - if a database access error occurs

setTime

public void setTime(int parameterIndex,
                    java.sql.Time x,
                    java.util.Calendar cal)
             throws java.sql.SQLException
Set a parameter to a java.sql.Time value. The driver converts this to a SQL TIME value when it sends it to the database, using the given timezone.

Specified by:
setTime in interface java.sql.PreparedStatement
Overrides:
setTime in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1...));
x - the parameter value
cal - the timezone to use
Throws:
java.sql.SQLException - if a database access error occurs

setTimeInternal

public void setTimeInternal(int parameterIndex,
                            java.sql.Time x,
                            java.util.Calendar targetCalendar,
                            java.util.TimeZone tz,
                            boolean rollForward)
                     throws java.sql.SQLException
Set a parameter to a java.sql.Time value. The driver converts this to a SQL TIME value when it sends it to the database, using the given timezone.

Parameters:
parameterIndex - the first parameter is 1...));
x - the parameter value
tz - the timezone to use
Throws:
java.sql.SQLException - if a database access error occurs

setTimestamp

public void setTimestamp(int parameterIndex,
                         java.sql.Timestamp x)
                  throws java.sql.SQLException
Set a parameter to a java.sql.Timestamp value. The driver converts this to a SQL TIMESTAMP value when it sends it to the database.

Specified by:
setTimestamp in interface java.sql.PreparedStatement
Overrides:
setTimestamp in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the parameter value
Throws:
java.sql.SQLException - if a database-access error occurs.

setTimestamp

public void setTimestamp(int parameterIndex,
                         java.sql.Timestamp x,
                         java.util.Calendar cal)
                  throws java.sql.SQLException
Set a parameter to a java.sql.Timestamp value. The driver converts this to a SQL TIMESTAMP value when it sends it to the database.

Specified by:
setTimestamp in interface java.sql.PreparedStatement
Overrides:
setTimestamp in class PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the parameter value
cal - the timezone to use
Throws:
java.sql.SQLException - if a database-access error occurs.

setTimestampInternal

protected void setTimestampInternal(int parameterIndex,
                                    java.sql.Timestamp x,
                                    java.util.Calendar targetCalendar,
                                    java.util.TimeZone tz,
                                    boolean rollForward)
                             throws java.sql.SQLException
Throws:
java.sql.SQLException

setType

protected void setType(ServerPreparedStatement.BindValue oldValue,
                       int bufferType)

setUnicodeStream

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

DOCUMENT ME!

Specified by:
setUnicodeStream in interface java.sql.PreparedStatement
Overrides:
setUnicodeStream in class PreparedStatement
Parameters:
parameterIndex - DOCUMENT ME!
x - DOCUMENT ME!
length - DOCUMENT ME!
Throws:
java.sql.SQLException - DOCUMENT ME!
NotImplemented - DOCUMENT ME!
See Also:
PreparedStatement.setUnicodeStream(int, java.io.InputStream, int)

setURL

public void setURL(int parameterIndex,
                   java.net.URL x)
            throws java.sql.SQLException
Specified by:
setURL in interface java.sql.PreparedStatement
Overrides:
setURL in class PreparedStatement
Throws:
java.sql.SQLException
See Also:
PreparedStatement.setURL(int, java.net.URL)

toString

public java.lang.String toString()
Description copied from class: PreparedStatement
Returns this PreparedStatement represented as a string.

Overrides:
toString in class PreparedStatement
Returns:
this PreparedStatement represented as a string.
See Also:
Object.toString()

getServerStatementId

protected long getServerStatementId()

canRewriteAsMultiValueInsertAtSqlLevel

public boolean canRewriteAsMultiValueInsertAtSqlLevel()
                                               throws java.sql.SQLException
Overrides:
canRewriteAsMultiValueInsertAtSqlLevel in class PreparedStatement
Throws:
java.sql.SQLException

canRewriteAsMultivalueInsertStatement

public boolean canRewriteAsMultivalueInsertStatement()
                                              throws java.sql.SQLException
Throws:
java.sql.SQLException

getLocationOfOnDuplicateKeyUpdate

protected int getLocationOfOnDuplicateKeyUpdate()
Overrides:
getLocationOfOnDuplicateKeyUpdate in class PreparedStatement

isOnDuplicateKeyUpdate

protected boolean isOnDuplicateKeyUpdate()

computeMaxParameterSetSizeAndBatchSize

protected long[] computeMaxParameterSetSizeAndBatchSize(int numBatchedArgs)
Computes the maximum parameter set size, and entire batch size given the number of arguments in the batch.

Overrides:
computeMaxParameterSetSizeAndBatchSize in class PreparedStatement

setOneBatchedParameterSet

protected int setOneBatchedParameterSet(java.sql.PreparedStatement batchedStatement,
                                        int batchedParamIndex,
                                        java.lang.Object paramSet)
                                 throws java.sql.SQLException
Overrides:
setOneBatchedParameterSet in class PreparedStatement
Throws:
java.sql.SQLException

containsOnDuplicateKeyUpdateInSQL

protected boolean containsOnDuplicateKeyUpdateInSQL()
Overrides:
containsOnDuplicateKeyUpdateInSQL in class PreparedStatement

prepareBatchedInsertSQL

protected PreparedStatement prepareBatchedInsertSQL(ConnectionImpl localConn,
                                                    int numBatches)
                                             throws java.sql.SQLException
Description copied from class: PreparedStatement
Returns a prepared statement for the number of batched parameters, used when re-writing batch INSERTs.

Overrides:
prepareBatchedInsertSQL in class PreparedStatement
Throws:
java.sql.SQLException