Package org.apache.derby.client.am
Class ClientPreparedStatement
- java.lang.Object
-
- org.apache.derby.client.am.ClientStatement
-
- org.apache.derby.client.am.ClientPreparedStatement
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.sql.PreparedStatement
,java.sql.Statement
,java.sql.Wrapper
,PreparedStatementCallbackInterface
,StatementCallbackInterface
,UnitOfWorkListener
- Direct Known Subclasses:
ClientCallableStatement
,ClientPreparedStatement42
public class ClientPreparedStatement extends ClientStatement implements java.sql.PreparedStatement, PreparedStatementCallbackInterface
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ClientPreparedStatement.PossibleTypes
PossibleTypes is information which is set of types.
-
Field Summary
Fields Modifier and Type Field Description private boolean
listenToUnitOfWork_
MaterialPreparedStatement
materialPreparedStatement_
(package private) boolean
outputRegistered_
(package private) ColumnMetaData
parameterMetaData_
(package private) boolean[]
parameterRegistered_
(package private) java.lang.Object[]
parameters_
private boolean[]
parameterSet_
private java.util.ArrayList<int[]>
parameterTypeList
private ClientPooledConnection
pooledConnection_
private java.lang.String
positionedUpdateCursorName_
(package private) java.lang.String
sql_
-
Fields inherited from class org.apache.derby.client.am.ClientStatement
agent_, autoGeneratedKeys_, batch_, cachedCursor_, cachedSingletonRowData_, connection_, cursorAttributesToSendOnPrepare_, cursorName_, doWriteTimeout, executeMethod__, executeQueryMethod__, executeUpdateMethod__, fetchDirection_, fetchSize_, generatedKeysColumnIndexes_, generatedKeysColumnNames_, generatedKeysResultSet_, isAutoCommittableStatement_, isCall__, isCatalogQuery_, isDeleteSql__, isInsertSql__, isPoolable, isPreparedStatement_, isQuery__, isUpdate__, isUpdateSql__, maxFieldSize_, maxRows_, openOnClient_, preparedStatementForAutoGeneratedKeys_, resultSet_, resultSetConcurrency_, resultSetHoldability_, resultSetList_, resultSetMetaData_, resultSetType_, singletonRowData_, sqlMode_, sqlUpdateMode_, timeout_, TIMEOUT_STATEMENT, timeoutArrayList, updateCount_
-
-
Constructor Summary
Constructors Constructor Description ClientPreparedStatement(Agent agent, ClientConnection connection, java.lang.String sql, int type, int concurrency, int holdability, int autoGeneratedKeys, java.lang.String[] columnNames, int[] columnIndexes, ClientPooledConnection cpc)
The PreparedStatementConstructor used for jdbc 2 prepared statements with scroll attributes.ClientPreparedStatement(Agent agent, ClientConnection connection, java.lang.String sql, Section section, ClientPooledConnection cpc)
The PreparedStatement constructor used for JDBC 2 positioned update statements.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addBatch()
void
addBatch(java.lang.String sql)
(package private) void
checkForValidParameterIndex(int parameterIndex)
(package private) void
checkForValidScale(int scale)
private void
checkStatementValidity(SqlException sqle)
protected void
checkStatus()
Check for closed statement and extract the SQLException if it is raised.private void
checkStreamLength(long length)
Check the length passed in for the stream that is to be set.private void
checkThatAllParametersAreSet()
private void
checkTypeForSetAsciiStream(int parameterIndex)
private void
checkTypeForSetBinaryStream(int parameterIndex)
private void
checkTypeForSetBlob(int parameterIndex)
private void
checkTypeForSetCharacterStream(int parameterIndex)
private void
checkTypeForSetClob(int parameterIndex)
void
clearParameters()
void
completeDescribeInput(ColumnMetaData parameterMetaData, Sqlca sqlca)
void
completeDescribeOutput(ColumnMetaData resultSetMetaData, Sqlca sqlca)
void
completeLocalCommit(java.util.Iterator listenerIterator)
void
completeLocalRollback(java.util.Iterator listenerIterator)
private void
completePrepareDescribe()
boolean
execute()
boolean
execute(java.lang.String sql)
boolean
execute(java.lang.String sql, int autoGeneratedKeys)
boolean
execute(java.lang.String sql, int[] columnIndexes)
boolean
execute(java.lang.String sql, java.lang.String[] columnNames)
int[]
executeBatch()
private long[]
executeBatchRequestX(boolean supportsQueryBatchRequest)
private long[]
executeBatchX(boolean supportsQueryBatchRequest)
long
executeLargeUpdate()
java.sql.ResultSet
executeQuery()
java.sql.ResultSet
executeQuery(java.lang.String sql)
(package private) ClientResultSet
executeQueryX()
int
executeUpdate()
int
executeUpdate(java.lang.String sql)
int
executeUpdate(java.lang.String sql, int autoGeneratedKeys)
int
executeUpdate(java.lang.String sql, int[] columnIndexes)
int
executeUpdate(java.lang.String sql, java.lang.String[] columnNames)
private long
executeUpdateX()
(package private) boolean
executeX()
private boolean[]
expandBooleanArray(boolean[] array, int newLength)
private java.lang.Object[]
expandObjectArray(java.lang.Object[] array, int newLength)
private void
flowExecute(int executeType)
(package private) void
flowPrepareDescribeInputOutput()
private ColumnMetaData
getColumnMetaDataX()
protected java.lang.String
getJdbcStatementInterfaceName()
Returns the name of the java.sql interface implemented by this class.java.sql.ResultSetMetaData
getMetaData()
private ColumnMetaData
getMetaDataX()
java.sql.ParameterMetaData
getParameterMetaData()
private ClientParameterMetaData
getParameterMetaDataX()
private void
initPreparedStatement()
private void
initPreparedStatement(java.lang.String sql)
private void
initPreparedStatement(java.lang.String sql, Section section)
protected void
initResetPreparedStatement()
void
listenToUnitOfWork()
protected void
markClosed(boolean removeListener)
This method cleans up client-side resources held by this Statement.(package private) void
prepare()
private void
readDescribeInput()
private void
readExecute()
private void
readPrepareDescribeInput()
private void
readPrepareDescribeInputOutput()
void
reset(boolean fullReset)
(package private) void
resetForReuse()
Resets the prepared statement for reuse in a statement pool.private void
resetParameters()
void
resetPreparedStatement(Agent agent, ClientConnection connection, java.lang.String sql, int type, int concurrency, int holdability, int autoGeneratedKeys, java.lang.String[] columnNames, int[] columnIndexes)
private void
resetPreparedStatement(Agent agent, ClientConnection connection, java.lang.String sql, Section section)
void
setArray(int parameterIndex, java.sql.Array x)
void
setAsciiStream(int parameterIndex, java.io.InputStream x)
Sets the designated parameter to the given input stream.void
setAsciiStream(int parameterIndex, java.io.InputStream x, int length)
We do this inefficiently and read it all in here.void
setAsciiStream(int parameterIndex, java.io.InputStream x, long length)
We do this inefficiently and read it all in here.void
setBigDecimal(int parameterIndex, java.math.BigDecimal x)
void
setBinaryStream(int parameterIndex, java.io.InputStream x)
Sets the designated parameter to the given input stream.void
setBinaryStream(int parameterIndex, java.io.InputStream x, int length)
sets the parameter to the Binary Stream objectvoid
setBinaryStream(int parameterIndex, java.io.InputStream x, long length)
sets the parameter to the Binary Stream objectprivate void
setBinaryStreamX(int parameterIndex, java.io.InputStream x, int length)
void
setBlob(int parameterIndex, java.io.InputStream inputStream)
Sets the designated parameter to aInputStream
object.void
setBlob(int parameterIndex, java.io.InputStream inputStream, long length)
Sets the designated parameter to a InputStream object.void
setBlob(int parameterIndex, java.sql.Blob x)
private void
setBlobX(int parameterIndex, java.sql.Blob x)
void
setBoolean(int parameterIndex, boolean x)
void
setByte(int parameterIndex, byte x)
void
setBytes(int parameterIndex, byte[] x)
(package private) void
setBytesX(int parameterIndex, byte[] x)
void
setCharacterStream(int parameterIndex, java.io.Reader x)
Sets the designated parameter to the givenReader
object.void
setCharacterStream(int parameterIndex, java.io.Reader x, int length)
Sets the designated parameter to the given Reader, which will have the specified number of bytes.void
setCharacterStream(int parameterIndex, java.io.Reader x, long length)
Sets the designated parameter to the given Reader, which will have the specified number of bytes.void
setClob(int parameterIndex, java.io.Reader reader)
Sets the designated parameter to aReader
object.void
setClob(int parameterIndex, java.io.Reader reader, long length)
Sets the designated parameter to a Reader object.void
setClob(int parameterIndex, java.sql.Clob x)
private void
setClobX(int parameterIndex, java.sql.Clob x)
void
setDate(int parameterIndex, java.sql.Date x)
void
setDate(int parameterIndex, java.sql.Date x, java.util.Calendar calendar)
void
setDouble(int parameterIndex, double x)
void
setFloat(int parameterIndex, float x)
(package private) void
setInput(int parameterIndex, java.lang.Object input)
void
setInt(int parameterIndex, int x)
(package private) void
setIntX(int parameterIndex, int x)
void
setLong(int parameterIndex, long x)
(package private) void
setLongX(int parameterIndex, long x)
void
setNCharacterStream(int parameterIndex, java.io.Reader value)
void
setNCharacterStream(int index, java.io.Reader value, long length)
void
setNClob(int parameterIndex, java.io.Reader reader)
void
setNClob(int parameterIndex, java.io.Reader reader, long length)
void
setNClob(int index, java.sql.NClob value)
void
setNString(int index, java.lang.String value)
void
setNull(int parameterIndex, int jdbcType)
void
setNull(int parameterIndex, int jdbcType, java.lang.String typeName)
(package private) void
setNullX(int parameterIndex, int jdbcType)
void
setObject(int parameterIndex, java.lang.Object x)
void
setObject(int parameterIndex, java.lang.Object x, int targetJdbcType)
void
setObject(int parameterIndex, java.lang.Object x, int targetJdbcType, int scale)
private void
setObjectX(int parameterIndex, java.lang.Object x, int targetJdbcType, int scale)
void
setRef(int parameterIndex, java.sql.Ref x)
void
setRowId(int parameterIndex, java.sql.RowId x)
void
setShort(int parameterIndex, short x)
(package private) void
setShortX(int parameterIndex, short x)
void
setSQLXML(int parameterIndex, java.sql.SQLXML xmlObject)
void
setString(int parameterIndex, java.lang.String x)
(package private) void
setStringX(int parameterIndex, java.lang.String x)
void
setTime(int parameterIndex, java.sql.Time x)
void
setTime(int parameterIndex, java.sql.Time x, java.util.Calendar calendar)
void
setTimestamp(int parameterIndex, java.sql.Timestamp x)
void
setTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar calendar)
private void
setUDTX(int parameterIndex, java.lang.Object x)
Set a UDT parameter to an object value.void
setUnicodeStream(int parameterIndex, java.io.InputStream x, int length)
Deprecated.void
setURL(int parameterIndex, java.net.URL x)
private void
writeDescribeInput(Section section)
private void
writeExecute(Section section, ColumnMetaData parameterMetaData, java.lang.Object[] inputs, int numInputColumns, boolean outputExpected, boolean chainedWritesFollowingSetLob)
private void
writeOpenQuery(Section section, int fetchSize, int resultSetType, int numInputColumns, ColumnMetaData parameterMetaData, java.lang.Object[] inputs)
private void
writePrepareDescribeInput()
private void
writePrepareDescribeInputOutput()
-
Methods inherited from class org.apache.derby.client.am.ClientStatement
accumulateWarning, cacheCursorAttributesToSendOnPrepare, cancel, checkAutoGeneratedKeysParameters, checkForAppropriateSqlMode, checkForClosedStatement, checkForDuplicateCursorName, checkForStoredProcResultSetCount, clearBatch, clearWarnings, clearWarningsX, close, closeMeOnCompletion, closeOnCompletion, closeX, completeExecute, completeExecuteCall, completeExecuteCall, completeExecuteCallOpenQuery, completeExecuteImmediate, completeExecuteSetStatement, completeOpenQuery, completePrepare, completePrepareDescribeOutput, completeSqlca, escape, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeX, extractCursorNameFromWhereCurrentOf, finalize, getConnection, getConnectionCallbackInterface, getFetchDirection, getFetchSize, getGeneratedKeys, getGuessedResultSetMetaData, getLargeMaxRows, getLargeUpdateCount, getMaterialStatement, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getOwner, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getSection, getSqlWarnings, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isQueryMode, isWrapperFor, markClosed, markResultSetsClosed, parseSqlAndSetSqlModes, parseStorProcReturnedScrollableRowset, prepareAutoGeneratedKeysStatement, readClose, readCloseResultSets, readExecuteCall, readOpenQuery, readPrepare, readPrepareDescribeOutput, readSetSpecialRegister, removeClientCursorNameFromCache, resetCursorNameAndRemoveFromWhereCurrentOfMappings, resetResultSetList, resetStatement, resetStatement, resultSetCommitting, resultSetCommitting, setCursorName, setEscapeProcessing, setFetchDirection, setFetchedRowBase, setFetchSize, setLargeMaxRows, setMaterialStatement, setMaxFieldSize, setMaxRows, setOwner, setPoolable, setQueryTimeout, setSection, setupCursorNameCacheAndMappings, setUpdateCount, substituteClientCursorNameWithServerCursorName, unwrap, writeClose, writeCloseResultSets, writeExecuteCall, writeOpenQuery, writePrepare, writePrepareDescribeOutput, writeSetSpecialRegister
-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.sql.Statement
cancel, clearBatch, clearWarnings, close, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isSimpleIdentifier, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
-
Methods inherited from interface org.apache.derby.client.am.StatementCallbackInterface
accumulateWarning, completeExecute, completeExecuteCall, completeExecuteCall, completeExecuteCallOpenQuery, completeExecuteImmediate, completeExecuteSetStatement, completeOpenQuery, completePrepare, completePrepareDescribeOutput, completeSqlca, getConnectionCallbackInterface, getGuessedResultSetMetaData
-
-
-
-
Field Detail
-
materialPreparedStatement_
public MaterialPreparedStatement materialPreparedStatement_
-
sql_
java.lang.String sql_
-
outputRegistered_
boolean outputRegistered_
-
parameters_
java.lang.Object[] parameters_
-
parameterSet_
private boolean[] parameterSet_
-
parameterRegistered_
boolean[] parameterRegistered_
-
parameterMetaData_
ColumnMetaData parameterMetaData_
-
parameterTypeList
private java.util.ArrayList<int[]> parameterTypeList
-
positionedUpdateCursorName_
private java.lang.String positionedUpdateCursorName_
-
pooledConnection_
private final ClientPooledConnection pooledConnection_
-
listenToUnitOfWork_
private boolean listenToUnitOfWork_
-
-
Constructor Detail
-
ClientPreparedStatement
public ClientPreparedStatement(Agent agent, ClientConnection connection, java.lang.String sql, Section section, ClientPooledConnection cpc) throws SqlException
The PreparedStatement constructor used for JDBC 2 positioned update statements. Called by material statement constructors. It has the ClientPooledConnection as one of its parameters this is used to raise the Statement Events when the prepared statement is closed- Parameters:
agent
- The instance of NetAgent associated with this CallableStatement object.connection
- The connection object associated with this PreparedStatement Object.sql
- A String object that is the SQL statement to be sent to the database.section
- Sectioncpc
- The ClientPooledConnection wraps the underlying physical connection associated with this prepared statement. It is used to pass the Statement closed and the Statement error occurred events that occur back to the ClientPooledConnection.- Throws:
SqlException
-
ClientPreparedStatement
public ClientPreparedStatement(Agent agent, ClientConnection connection, java.lang.String sql, int type, int concurrency, int holdability, int autoGeneratedKeys, java.lang.String[] columnNames, int[] columnIndexes, ClientPooledConnection cpc) throws SqlException
The PreparedStatementConstructor used for jdbc 2 prepared statements with scroll attributes. Called by material statement constructors. It has the ClientPooledConnection as one of its parameters this is used to raise the Statement Events when the prepared statement is closed- Parameters:
agent
- The instance of NetAgent associated with this CallableStatement object.connection
- The connection object associated with this PreparedStatement Object.sql
- A String object that is the SQL statement to be sent to the database.type
- One of the ResultSet type constants.concurrency
- One of the ResultSet concurrency constants.holdability
- One of the ResultSet holdability constants.autoGeneratedKeys
- a flag indicating whether auto-generated keys should be returned.columnNames
- an array of column names indicating the columns that should be returned from the inserted row or rows.columnIndexes
- an array of column names indicating the columns that should be returned from the inserted row.cpc
- The ClientPooledConnection wraps the underlying physical connection associated with this prepared statement it is used to pass the Statement closed and the Statement error occurred events that occur back to the ClientPooledConnection.- Throws:
SqlException
-
-
Method Detail
-
setInput
void setInput(int parameterIndex, java.lang.Object input)
-
initPreparedStatement
private void initPreparedStatement()
-
initResetPreparedStatement
protected void initResetPreparedStatement()
- Overrides:
initResetPreparedStatement
in classClientStatement
-
reset
public void reset(boolean fullReset) throws SqlException
- Overrides:
reset
in classClientStatement
- Throws:
SqlException
-
resetForReuse
void resetForReuse() throws SqlException
Resets the prepared statement for reuse in a statement pool.- Overrides:
resetForReuse
in classClientStatement
- Throws:
SqlException
- if the reset fails- See Also:
ClientStatement.resetForReuse()
-
resetParameters
private void resetParameters()
-
resetPreparedStatement
private void resetPreparedStatement(Agent agent, ClientConnection connection, java.lang.String sql, Section section) throws SqlException
- Throws:
SqlException
-
initPreparedStatement
private void initPreparedStatement(java.lang.String sql, Section section) throws SqlException
- Throws:
SqlException
-
resetPreparedStatement
public void resetPreparedStatement(Agent agent, ClientConnection connection, java.lang.String sql, int type, int concurrency, int holdability, int autoGeneratedKeys, java.lang.String[] columnNames, int[] columnIndexes) throws SqlException
- Throws:
SqlException
-
initPreparedStatement
private void initPreparedStatement(java.lang.String sql) throws SqlException
- Throws:
SqlException
-
prepare
void prepare() throws SqlException
- Throws:
SqlException
-
addBatch
public void addBatch(java.lang.String sql) throws java.sql.SQLException
- Specified by:
addBatch
in interfacejava.sql.Statement
- Overrides:
addBatch
in classClientStatement
- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql) throws java.sql.SQLException
- Specified by:
execute
in interfacejava.sql.Statement
- Overrides:
execute
in classClientStatement
- Throws:
java.sql.SQLException
-
executeQuery
public java.sql.ResultSet executeQuery(java.lang.String sql) throws java.sql.SQLException
- Specified by:
executeQuery
in interfacejava.sql.Statement
- Overrides:
executeQuery
in classClientStatement
- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql) throws java.sql.SQLException
- Specified by:
executeUpdate
in interfacejava.sql.Statement
- Overrides:
executeUpdate
in classClientStatement
- Throws:
java.sql.SQLException
-
executeQuery
public java.sql.ResultSet executeQuery() throws java.sql.SQLException
- Specified by:
executeQuery
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
executeQueryX
ClientResultSet executeQueryX() throws SqlException
- Throws:
SqlException
-
executeUpdate
public int executeUpdate() throws java.sql.SQLException
- Specified by:
executeUpdate
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
executeUpdateX
private long executeUpdateX() throws SqlException
- Throws:
SqlException
-
setNull
public void setNull(int parameterIndex, int jdbcType) throws java.sql.SQLException
- Specified by:
setNull
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setNullX
void setNullX(int parameterIndex, int jdbcType) throws SqlException
- Throws:
SqlException
-
setNull
public void setNull(int parameterIndex, int jdbcType, java.lang.String typeName) throws java.sql.SQLException
- Specified by:
setNull
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setBoolean
public void setBoolean(int parameterIndex, boolean x) throws java.sql.SQLException
- Specified by:
setBoolean
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setByte
public void setByte(int parameterIndex, byte x) throws java.sql.SQLException
- Specified by:
setByte
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setShort
public void setShort(int parameterIndex, short x) throws java.sql.SQLException
- Specified by:
setShort
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setShortX
void setShortX(int parameterIndex, short x) throws SqlException
- Throws:
SqlException
-
setInt
public void setInt(int parameterIndex, int x) throws java.sql.SQLException
- Specified by:
setInt
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setIntX
void setIntX(int parameterIndex, int x) throws SqlException
- Throws:
SqlException
-
setLong
public void setLong(int parameterIndex, long x) throws java.sql.SQLException
- Specified by:
setLong
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setLongX
void setLongX(int parameterIndex, long x)
-
setFloat
public void setFloat(int parameterIndex, float x) throws java.sql.SQLException
- Specified by:
setFloat
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setDouble
public void setDouble(int parameterIndex, double x) throws java.sql.SQLException
- Specified by:
setDouble
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setBigDecimal
public void setBigDecimal(int parameterIndex, java.math.BigDecimal x) throws java.sql.SQLException
- Specified by:
setBigDecimal
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setDate
public void setDate(int parameterIndex, java.sql.Date x, java.util.Calendar calendar) throws java.sql.SQLException
- Specified by:
setDate
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setDate
public void setDate(int parameterIndex, java.sql.Date x) throws java.sql.SQLException
- Specified by:
setDate
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setTime
public void setTime(int parameterIndex, java.sql.Time x, java.util.Calendar calendar) throws java.sql.SQLException
- Specified by:
setTime
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setTime
public void setTime(int parameterIndex, java.sql.Time x) throws java.sql.SQLException
- Specified by:
setTime
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setTimestamp
public void setTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar calendar) throws java.sql.SQLException
- Specified by:
setTimestamp
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setTimestamp
public void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws java.sql.SQLException
- Specified by:
setTimestamp
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setString
public void setString(int parameterIndex, java.lang.String x) throws java.sql.SQLException
- Specified by:
setString
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setStringX
void setStringX(int parameterIndex, java.lang.String x) throws SqlException
- Throws:
SqlException
-
setBytes
public void setBytes(int parameterIndex, byte[] x) throws java.sql.SQLException
- Specified by:
setBytes
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setBytesX
void setBytesX(int parameterIndex, byte[] x) throws SqlException
- Throws:
SqlException
-
setBinaryStream
public void setBinaryStream(int parameterIndex, java.io.InputStream x, long length) throws java.sql.SQLException
sets the parameter to the Binary Stream object- Specified by:
setBinaryStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the java input stream which contains the binary parameter valuelength
- the number of bytes in the stream- Throws:
java.sql.SQLException
- thrown on failure.
-
setBinaryStream
public void setBinaryStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException
sets the parameter to the Binary Stream object- Specified by:
setBinaryStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the java input stream which contains the binary parameter valuelength
- the number of bytes in the stream- Throws:
java.sql.SQLException
- thrown on failure.
-
setBinaryStreamX
private void setBinaryStreamX(int parameterIndex, java.io.InputStream x, int length) throws SqlException
- Throws:
SqlException
-
setAsciiStream
public void setAsciiStream(int parameterIndex, java.io.InputStream x, long length) throws java.sql.SQLException
We do this inefficiently and read it all in here. The target type is assumed to be a String.- Specified by:
setAsciiStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the java input stream which contains the ASCII parameter valuelength
- the number of bytes in the stream- Throws:
java.sql.SQLException
- thrown on failure.
-
setAsciiStream
public void setAsciiStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException
We do this inefficiently and read it all in here. The target type is assumed to be a String.- Specified by:
setAsciiStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the java input stream which contains the ASCII parameter valuelength
- the number of bytes in the stream- Throws:
java.sql.SQLException
- thrown on failure.
-
checkStreamLength
private void checkStreamLength(long length) throws java.sql.SQLException
Check the length passed in for the stream that is to be set. If length is larger than Integer.MAX_VALUE or smaller that 0, we fail by throwing an SQLException.- Parameters:
length
- The length of the stream being set- Throws:
java.sql.SQLException
- Thrown for a negative or too large length.
-
checkTypeForSetAsciiStream
private void checkTypeForSetAsciiStream(int parameterIndex) throws SqlException, java.sql.SQLException
- Throws:
SqlException
java.sql.SQLException
-
checkTypeForSetBinaryStream
private void checkTypeForSetBinaryStream(int parameterIndex) throws SqlException, java.sql.SQLException
- Throws:
SqlException
java.sql.SQLException
-
checkTypeForSetCharacterStream
private void checkTypeForSetCharacterStream(int parameterIndex) throws SqlException, java.sql.SQLException
- Throws:
SqlException
java.sql.SQLException
-
checkTypeForSetBlob
private void checkTypeForSetBlob(int parameterIndex) throws SqlException, java.sql.SQLException
- Throws:
SqlException
java.sql.SQLException
-
checkTypeForSetClob
private void checkTypeForSetClob(int parameterIndex) throws SqlException, java.sql.SQLException
- Throws:
SqlException
java.sql.SQLException
-
setUnicodeStream
public void setUnicodeStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException
Deprecated.Sets the specified parameter to the given input stream. Deprecated in JDBC 3.0 and this method will always just throw a feature not implemented exception.- Specified by:
setUnicodeStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the java input stream which contains the UNICODE parameter valuelength
- the number of bytes in the stream- Throws:
java.sql.SQLException
- throws feature not implemented.
-
setCharacterStream
public void setCharacterStream(int parameterIndex, java.io.Reader x) throws java.sql.SQLException
Sets the designated parameter to the givenReader
object. When a very large UNICODE value is input to a LONGVARCHAR parameter, it may be more practical to send it via ajava.io.Reader
object. The data will be read from the stream as needed until end-of-file is reached. The JDBC driver will do any necessary conversion from UNICODE to the database char format.- Specified by:
setCharacterStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- thejava.io.Reader
object that contains the Unicode data- Throws:
java.sql.SQLException
- if a database access error occurs or this method is called on a closedPreparedStatement
-
setCharacterStream
public void setCharacterStream(int parameterIndex, java.io.Reader x, long length) throws java.sql.SQLException
Sets the designated parameter to the given Reader, which will have the specified number of bytes.- Specified by:
setCharacterStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the index of the parameter to which this set method is appliedx
- the java Reader which contains the UNICODE valuelength
- the number of bytes in the stream- Throws:
java.sql.SQLException
- thrown on failure.
-
setCharacterStream
public void setCharacterStream(int parameterIndex, java.io.Reader x, int length) throws java.sql.SQLException
Sets the designated parameter to the given Reader, which will have the specified number of bytes.- Specified by:
setCharacterStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the index of the parameter to which this set method is appliedx
- the java Reader which contains the UNICODE valuelength
- the number of bytes in the stream- Throws:
java.sql.SQLException
- thrown on failure.
-
setBlob
public void setBlob(int parameterIndex, java.sql.Blob x) throws java.sql.SQLException
- Specified by:
setBlob
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setBlobX
private void setBlobX(int parameterIndex, java.sql.Blob x) throws SqlException
- Throws:
SqlException
-
setClob
public void setClob(int parameterIndex, java.sql.Clob x) throws java.sql.SQLException
- Specified by:
setClob
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setClobX
private void setClobX(int parameterIndex, java.sql.Clob x) throws SqlException
- Throws:
SqlException
-
setArray
public void setArray(int parameterIndex, java.sql.Array x) throws java.sql.SQLException
- Specified by:
setArray
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setRef
public void setRef(int parameterIndex, java.sql.Ref x) throws java.sql.SQLException
- Specified by:
setRef
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setObject
public void setObject(int parameterIndex, java.lang.Object x) throws java.sql.SQLException
- Specified by:
setObject
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setUDTX
private void setUDTX(int parameterIndex, java.lang.Object x) throws SqlException, java.sql.SQLException
Set a UDT parameter to an object value.- Throws:
SqlException
java.sql.SQLException
-
setObject
public void setObject(int parameterIndex, java.lang.Object x, int targetJdbcType) throws java.sql.SQLException
- Specified by:
setObject
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setObject
public void setObject(int parameterIndex, java.lang.Object x, int targetJdbcType, int scale) throws java.sql.SQLException
- Specified by:
setObject
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setObjectX
private void setObjectX(int parameterIndex, java.lang.Object x, int targetJdbcType, int scale) throws SqlException
- Throws:
SqlException
-
clearParameters
public void clearParameters() throws java.sql.SQLException
- Specified by:
clearParameters
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
execute
public boolean execute() throws java.sql.SQLException
- Specified by:
execute
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
executeX
boolean executeX() throws SqlException
- Throws:
SqlException
-
addBatch
public void addBatch() throws java.sql.SQLException
- Specified by:
addBatch
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
executeBatch
public int[] executeBatch() throws java.sql.SQLException
- Specified by:
executeBatch
in interfacejava.sql.Statement
- Overrides:
executeBatch
in classClientStatement
- Throws:
java.sql.SQLException
-
getMetaData
public java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException
- Specified by:
getMetaData
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
getMetaDataX
private ColumnMetaData getMetaDataX() throws SqlException
- Throws:
SqlException
-
execute
public boolean execute(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
- Specified by:
execute
in interfacejava.sql.Statement
- Overrides:
execute
in classClientStatement
- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException
- Specified by:
execute
in interfacejava.sql.Statement
- Overrides:
execute
in classClientStatement
- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException
- Specified by:
execute
in interfacejava.sql.Statement
- Overrides:
execute
in classClientStatement
- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
- Specified by:
executeUpdate
in interfacejava.sql.Statement
- Overrides:
executeUpdate
in classClientStatement
- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException
- Specified by:
executeUpdate
in interfacejava.sql.Statement
- Overrides:
executeUpdate
in classClientStatement
- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException
- Specified by:
executeUpdate
in interfacejava.sql.Statement
- Overrides:
executeUpdate
in classClientStatement
- Throws:
java.sql.SQLException
-
setURL
public void setURL(int parameterIndex, java.net.URL x) throws java.sql.SQLException
- Specified by:
setURL
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
getParameterMetaData
public java.sql.ParameterMetaData getParameterMetaData() throws java.sql.SQLException
- Specified by:
getParameterMetaData
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
getParameterMetaDataX
private ClientParameterMetaData getParameterMetaDataX() throws SqlException
- Throws:
SqlException
-
getColumnMetaDataX
private ColumnMetaData getColumnMetaDataX() throws SqlException
- Throws:
SqlException
-
writeExecute
private void writeExecute(Section section, ColumnMetaData parameterMetaData, java.lang.Object[] inputs, int numInputColumns, boolean outputExpected, boolean chainedWritesFollowingSetLob) throws SqlException
- Throws:
SqlException
-
readExecute
private void readExecute() throws SqlException
- Throws:
SqlException
-
writeOpenQuery
private void writeOpenQuery(Section section, int fetchSize, int resultSetType, int numInputColumns, ColumnMetaData parameterMetaData, java.lang.Object[] inputs) throws SqlException
- Throws:
SqlException
-
writeDescribeInput
private void writeDescribeInput(Section section) throws SqlException
- Throws:
SqlException
-
readDescribeInput
private void readDescribeInput() throws SqlException
- Throws:
SqlException
-
completeDescribeInput
public void completeDescribeInput(ColumnMetaData parameterMetaData, Sqlca sqlca)
- Specified by:
completeDescribeInput
in interfacePreparedStatementCallbackInterface
-
completeDescribeOutput
public void completeDescribeOutput(ColumnMetaData resultSetMetaData, Sqlca sqlca)
- Specified by:
completeDescribeOutput
in interfacePreparedStatementCallbackInterface
-
writePrepareDescribeInputOutput
private void writePrepareDescribeInputOutput() throws SqlException
- Throws:
SqlException
-
readPrepareDescribeInputOutput
private void readPrepareDescribeInputOutput() throws SqlException
- Throws:
SqlException
-
writePrepareDescribeInput
private void writePrepareDescribeInput() throws SqlException
- Throws:
SqlException
-
readPrepareDescribeInput
private void readPrepareDescribeInput() throws SqlException
- Throws:
SqlException
-
completePrepareDescribe
private void completePrepareDescribe()
-
expandObjectArray
private java.lang.Object[] expandObjectArray(java.lang.Object[] array, int newLength)
-
expandBooleanArray
private boolean[] expandBooleanArray(boolean[] array, int newLength)
-
flowPrepareDescribeInputOutput
void flowPrepareDescribeInputOutput() throws SqlException
- Throws:
SqlException
-
flowExecute
private void flowExecute(int executeType) throws SqlException
- Throws:
SqlException
-
executeBatchX
private long[] executeBatchX(boolean supportsQueryBatchRequest) throws SqlException, java.sql.SQLException
- Throws:
SqlException
java.sql.SQLException
-
executeBatchRequestX
private long[] executeBatchRequestX(boolean supportsQueryBatchRequest) throws SqlException, java.sql.BatchUpdateException
- Throws:
SqlException
java.sql.BatchUpdateException
-
listenToUnitOfWork
public void listenToUnitOfWork()
- Specified by:
listenToUnitOfWork
in interfaceUnitOfWorkListener
- Overrides:
listenToUnitOfWork
in classClientStatement
-
completeLocalCommit
public void completeLocalCommit(java.util.Iterator listenerIterator)
- Specified by:
completeLocalCommit
in interfaceUnitOfWorkListener
- Overrides:
completeLocalCommit
in classClientStatement
-
completeLocalRollback
public void completeLocalRollback(java.util.Iterator listenerIterator)
- Specified by:
completeLocalRollback
in interfaceUnitOfWorkListener
- Overrides:
completeLocalRollback
in classClientStatement
-
getJdbcStatementInterfaceName
protected java.lang.String getJdbcStatementInterfaceName()
Returns the name of the java.sql interface implemented by this class.- Overrides:
getJdbcStatementInterfaceName
in classClientStatement
- Returns:
- name of java.sql interface
-
checkForValidParameterIndex
void checkForValidParameterIndex(int parameterIndex) throws SqlException
- Throws:
SqlException
-
checkThatAllParametersAreSet
private void checkThatAllParametersAreSet() throws SqlException
- Throws:
SqlException
-
checkForValidScale
void checkForValidScale(int scale) throws SqlException
- Throws:
SqlException
-
markClosed
protected void markClosed(boolean removeListener)
Description copied from class:ClientStatement
This method cleans up client-side resources held by this Statement. If removeListener is true, the Statement is removed from open statements list and PreparedStatement is also removed from commit and rollback listeners list. This is called from the close methods.- Overrides:
markClosed
in classClientStatement
- Parameters:
removeListener
- if true the Statement will be removed from the open statements list and PreparedStatement will also be removed from commit and rollback listeners list inorg.apache.derby.client.am.Connection
.
-
setAsciiStream
public void setAsciiStream(int parameterIndex, java.io.InputStream x) throws java.sql.SQLException
Sets the designated parameter to the given input stream. When a very large ASCII value is input to aLONGVARCHAR
parameter, it may be more practical to send it via ajava.io.InputStream
. Data will be read from the stream as needed until end-of-file is reached. The JDBC driver will do any necessary conversion from ASCII to the database char format.- Specified by:
setAsciiStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the Java input stream that contains the ASCII parameter value- Throws:
java.sql.SQLException
- if a database access error occurs or this method is called on a closedPreparedStatement
-
setBinaryStream
public void setBinaryStream(int parameterIndex, java.io.InputStream x) throws java.sql.SQLException
Sets the designated parameter to the given input stream. When a very large binary value is input to aLONGVARBINARY
parameter, it may be more practical to send it via ajava.io.InputStream
object. The data will be read from the stream as needed until end-of-file is reached.- Specified by:
setBinaryStream
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the java input stream which contains the binary parameter value- Throws:
java.sql.SQLException
- if a database access error occurs or this method is called on a closedPreparedStatement
-
setClob
public void setClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
Sets the designated parameter to aReader
object.- Specified by:
setClob
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- index of the first parameter is 1, the second is 2, ...reader
- an object that contains the data to set the parameter value to.- Throws:
java.sql.SQLException
- if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs; this method is called on a closed PreparedStatementor if parameterIndex does not correspond to a parameter marker in the SQL statement
-
setClob
public void setClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
Sets the designated parameter to a Reader object.- Specified by:
setClob
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- index of the first parameter is 1, the second is 2, ...reader
- An object that contains the data to set the parameter value to.length
- the number of characters in the parameter data.- Throws:
java.sql.SQLException
- if parameterIndex does not correspond to a parameter marker in the SQL statement, or if the length specified is less than zero.
-
setBlob
public void setBlob(int parameterIndex, java.io.InputStream inputStream) throws java.sql.SQLException
Sets the designated parameter to aInputStream
object. This method differs from thesetBinaryStream(int, InputStream)
method because it informs the driver that the parameter value should be sent to the server as aBLOB
. When thesetBinaryStream
method is used, the driver may have to do extra work to determine whether the parameter data should be sent to the server as aLONGVARBINARY
or aBLOB
- Specified by:
setBlob
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- index of the first parameter is 1, the second is 2, ...inputStream
- an object that contains the data to set the parameter value to.- Throws:
java.sql.SQLException
- if a database access error occurs, this method is called on a closedPreparedStatement
or ifparameterIndex
does not correspond to a parameter marker in the SQL statement
-
setBlob
public void setBlob(int parameterIndex, java.io.InputStream inputStream, long length) throws java.sql.SQLException
Sets the designated parameter to a InputStream object.- Specified by:
setBlob
in interfacejava.sql.PreparedStatement
- Parameters:
parameterIndex
- index of the first parameter is 1, the second is 2, ...inputStream
- An object that contains the data to set the parameter value to.length
- the number of bytes in the parameter data.- Throws:
java.sql.SQLException
- if parameterIndex does not correspond to a parameter marker in the SQL statement, if the length specified is less than zero or if the number of bytes in the inputstream does not match the specfied length.
-
setNString
public void setNString(int index, java.lang.String value) throws java.sql.SQLException
- Specified by:
setNString
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setNCharacterStream
public void setNCharacterStream(int parameterIndex, java.io.Reader value) throws java.sql.SQLException
- Specified by:
setNCharacterStream
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setNCharacterStream
public void setNCharacterStream(int index, java.io.Reader value, long length) throws java.sql.SQLException
- Specified by:
setNCharacterStream
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setNClob
public void setNClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
- Specified by:
setNClob
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setNClob
public void setNClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
- Specified by:
setNClob
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setRowId
public void setRowId(int parameterIndex, java.sql.RowId x) throws java.sql.SQLException
- Specified by:
setRowId
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setNClob
public void setNClob(int index, java.sql.NClob value) throws java.sql.SQLException
- Specified by:
setNClob
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setSQLXML
public void setSQLXML(int parameterIndex, java.sql.SQLXML xmlObject) throws java.sql.SQLException
- Specified by:
setSQLXML
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
executeLargeUpdate
public long executeLargeUpdate() throws java.sql.SQLException
- Specified by:
executeLargeUpdate
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
checkStatementValidity
private void checkStatementValidity(SqlException sqle) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
checkStatus
protected void checkStatus() throws java.sql.SQLException
Check for closed statement and extract the SQLException if it is raised.
- Throws:
java.sql.SQLException
-
-