QbCallableStatement.java
Wrapper Class for CallableStatement interface.
Initially created to handle Oracle Stored Procedures which return a cursor
instead of a ResultSet. When created, QbCallableStatement checks if the
query is written in the Oracle syntax:
begin
? := stored_procedure_name(parameters,...);
end;
If it is, change behavior for certain methods.
The four main changes are
- setting OUT parameter to handle cursor
When created, set an OUT parameter to index 1 with type
OracleTypes.CURSOR
- setting IN parameters
When setting IN parameters, shift index up 1 to accommodate
for cursor parameter
- execute
The return value for the execute() method will always be
true
- getting ResultSet
When calling getResultSet, it will call getObject(1)
else, call the default methods (e.g. cStmt.execute();)
public QbCallableStatement(java.sql.Connection conn,
java.lang.String query)
throws java.sql.SQLException
QbCallableStatement
public QbCallableStatement(java.sql.Connection conn,
java.lang.String query,
int resultSetType,
int resultSetConcurrency)
throws java.sql.SQLException
QbCallableStatement
public QbCallableStatement(java.sql.Connection conn,
java.lang.String query,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
throws java.sql.SQLException
Method Detail
getArray
public java.sql.Array getArray(int i)
throws java.sql.SQLException
Specified by:
getArray in interface java.sql.CallableStatement
getArray
public java.sql.Array getArray(java.lang.String parameterName)
throws java.sql.SQLException
getBigDecimal
public java.math.BigDecimal getBigDecimal(int parameterIndex)
throws java.sql.SQLException
Specified by:
getBigDecimal in interface java.sql.CallableStatement
getBigDecimal
public java.math.BigDecimal getBigDecimal(java.lang.String parameterName)
throws java.sql.SQLException
getBigDecimal
public java.math.BigDecimal getBigDecimal(int parameterIndex,
int scale)
throws java.sql.SQLException
Specified by:
getBigDecimal in interface java.sql.CallableStatement
getBlob
public java.sql.Blob getBlob(int i)
throws java.sql.SQLException
Specified by:
getBlob in interface java.sql.CallableStatement
getBlob
public java.sql.Blob getBlob(java.lang.String parameterName)
throws java.sql.SQLException
getBoolean
public boolean getBoolean(int parameterIndex)
throws java.sql.SQLException
Specified by:
getBoolean in interface java.sql.CallableStatement
getBoolean
public boolean getBoolean(java.lang.String parameterName)
throws java.sql.SQLException
getByte
public byte getByte(int parameterIndex)
throws java.sql.SQLException
Specified by:
getByte in interface java.sql.CallableStatement
getByte
public byte getByte(java.lang.String parameterName)
throws java.sql.SQLException
getBytes
public byte[] getBytes(int parameterIndex)
throws java.sql.SQLException
Specified by:
getBytes in interface java.sql.CallableStatement
getBytes
public byte[] getBytes(java.lang.String parameterName)
throws java.sql.SQLException
getClob
public java.sql.Clob getClob(int i)
throws java.sql.SQLException
Specified by:
getClob in interface java.sql.CallableStatement
getClob
public java.sql.Clob getClob(java.lang.String parameterName)
throws java.sql.SQLException
getDate
public java.sql.Date getDate(int parameterIndex)
throws java.sql.SQLException
Specified by:
getDate in interface java.sql.CallableStatement
getDate
public java.sql.Date getDate(java.lang.String parameterName)
throws java.sql.SQLException
getDate
public java.sql.Date getDate(int parameterIndex,
java.util.Calendar cal)
throws java.sql.SQLException
Specified by:
getDate in interface java.sql.CallableStatement
getDate
public java.sql.Date getDate(java.lang.String parameterName,
java.util.Calendar cal)
throws java.sql.SQLException
getDouble
public double getDouble(int parameterIndex)
throws java.sql.SQLException
Specified by:
getDouble in interface java.sql.CallableStatement
getDouble
public double getDouble(java.lang.String parameterName)
throws java.sql.SQLException
getFloat
public float getFloat(int parameterIndex)
throws java.sql.SQLException
Specified by:
getFloat in interface java.sql.CallableStatement
getFloat
public float getFloat(java.lang.String parameterName)
throws java.sql.SQLException
getInt
public int getInt(int parameterIndex)
throws java.sql.SQLException
Specified by:
getInt in interface java.sql.CallableStatement
getInt
public int getInt(java.lang.String parameterName)
throws java.sql.SQLException
getLong
public long getLong(int parameterIndex)
throws java.sql.SQLException
Specified by:
getLong in interface java.sql.CallableStatement
getLong
public long getLong(java.lang.String parameterName)
throws java.sql.SQLException
getObject
public java.lang.Object getObject(int parameterIndex)
throws java.sql.SQLException
Specified by:
getObject in interface java.sql.CallableStatement
getObject
public java.lang.Object getObject(java.lang.String parameterName)
throws java.sql.SQLException
getObject
public java.lang.Object getObject(int i,
java.util.Map map)
throws java.sql.SQLException
Specified by:
getObject in interface java.sql.CallableStatement
getObject
public java.lang.Object getObject(java.lang.String parameterName,
java.util.Map map)
throws java.sql.SQLException
getRef
public java.sql.Ref getRef(int i)
throws java.sql.SQLException
Specified by:
getRef in interface java.sql.CallableStatement
getRef
public java.sql.Ref getRef(java.lang.String parameterName)
throws java.sql.SQLException
getShort
public short getShort(int parameterIndex)
throws java.sql.SQLException
Specified by:
getShort in interface java.sql.CallableStatement
getShort
public short getShort(java.lang.String parameterName)
throws java.sql.SQLException
getString
public java.lang.String getString(int parameterIndex)
throws java.sql.SQLException
Specified by:
getString in interface java.sql.CallableStatement
getString
public java.lang.String getString(java.lang.String parameterName)
throws java.sql.SQLException
getTime
public java.sql.Time getTime(int parameterIndex)
throws java.sql.SQLException
Specified by:
getTime in interface java.sql.CallableStatement
getTime
public java.sql.Time getTime(java.lang.String parameterName)
throws java.sql.SQLException
getTime
public java.sql.Time getTime(int parameterIndex,
java.util.Calendar cal)
throws java.sql.SQLException
Specified by:
getTime in interface java.sql.CallableStatement
getTime
public java.sql.Time getTime(java.lang.String parameterName,
java.util.Calendar cal)
throws java.sql.SQLException
getTimestamp
public java.sql.Timestamp getTimestamp(int parameterIndex)
throws java.sql.SQLException
Specified by:
getTimestamp in interface java.sql.CallableStatement
getTimestamp
public java.sql.Timestamp getTimestamp(java.lang.String parameterName)
throws java.sql.SQLException
getTimestamp
public java.sql.Timestamp getTimestamp(int parameterIndex,
java.util.Calendar cal)
throws java.sql.SQLException
Specified by:
getTimestamp in interface java.sql.CallableStatement
getTimestamp
public java.sql.Timestamp getTimestamp(java.lang.String parameterName,
java.util.Calendar cal)
throws java.sql.SQLException
getURL
public java.net.URL getURL(int parameterIndex)
throws java.sql.SQLException
getURL
public java.net.URL getURL(java.lang.String parameterName)
throws java.sql.SQLException
registerOutParameter
public void registerOutParameter(int parameterIndex,
int sqlType)
throws java.sql.SQLException
Specified by:
registerOutParameter in interface java.sql.CallableStatement
registerOutParameter
public void registerOutParameter(java.lang.String parameterName,
int sqlType)
throws java.sql.SQLException
registerOutParameter
public void registerOutParameter(int parameterIndex,
int sqlType,
int scale)
throws java.sql.SQLException
Specified by:
registerOutParameter in interface java.sql.CallableStatement
registerOutParameter
public void registerOutParameter(int paramIndex,
int sqlType,
java.lang.String typeName)
throws java.sql.SQLException
Specified by:
registerOutParameter in interface java.sql.CallableStatement
registerOutParameter
public void registerOutParameter(java.lang.String parameterName,
int sqlType,
int scale)
throws java.sql.SQLException
registerOutParameter
public void registerOutParameter(java.lang.String parameterName,
int sqlType,
java.lang.String typeName)
throws java.sql.SQLException
setAsciiStream
public void setAsciiStream(java.lang.String parameterName,
java.io.InputStream x,
int length)
throws java.sql.SQLException
setBigDecimal
public void setBigDecimal(java.lang.String parameterName,
java.math.BigDecimal x)
throws java.sql.SQLException
setBinaryStream
public void setBinaryStream(java.lang.String parameterName,
java.io.InputStream x,
int length)
throws java.sql.SQLException
setBoolean
public void setBoolean(java.lang.String parameterName,
boolean x)
throws java.sql.SQLException
setByte
public void setByte(java.lang.String parameterName,
byte x)
throws java.sql.SQLException
setBytes
public void setBytes(java.lang.String parameterName,
byte[] x)
throws java.sql.SQLException
setCharacterStream
public void setCharacterStream(java.lang.String parameterName,
java.io.Reader reader,
int length)
throws java.sql.SQLException
setDate
public void setDate(java.lang.String parameterName,
java.sql.Date x)
throws java.sql.SQLException
setDate
public void setDate(java.lang.String parameterName,
java.sql.Date x,
java.util.Calendar cal)
throws java.sql.SQLException
setDouble
public void setDouble(java.lang.String parameterName,
double x)
throws java.sql.SQLException
setFloat
public void setFloat(java.lang.String parameterName,
float x)
throws java.sql.SQLException
setInt
public void setInt(java.lang.String parameterName,
int x)
throws java.sql.SQLException
setLong
public void setLong(java.lang.String parameterName,
long x)
throws java.sql.SQLException
setNull
public void setNull(java.lang.String parameterName,
int sqlType)
throws java.sql.SQLException
setNull
public void setNull(java.lang.String parameterName,
int sqlType,
java.lang.String typeName)
throws java.sql.SQLException
setObject
public void setObject(java.lang.String parameterName,
java.lang.Object x)
throws java.sql.SQLException
setObject
public void setObject(java.lang.String parameterName,
java.lang.Object x,
int targetSqlType)
throws java.sql.SQLException
setObject
public void setObject(java.lang.String parameterName,
java.lang.Object x,
int targetSqlType,
int scale)
throws java.sql.SQLException
setShort
public void setShort(java.lang.String parameterName,
short x)
throws java.sql.SQLException
setString
public void setString(java.lang.String parameterName,
java.lang.String x)
throws java.sql.SQLException
setTime
public void setTime(java.lang.String parameterName,
java.sql.Time x)
throws java.sql.SQLException
setTime
public void setTime(java.lang.String parameterName,
java.sql.Time x,
java.util.Calendar cal)
throws java.sql.SQLException
setTimestamp
public void setTimestamp(java.lang.String parameterName,
java.sql.Timestamp x)
throws java.sql.SQLException
setTimestamp
public void setTimestamp(java.lang.String parameterName,
java.sql.Timestamp x,
java.util.Calendar cal)
throws java.sql.SQLException
setURL
public void setURL(java.lang.String parameterName,
java.net.URL val)
throws java.sql.SQLException
wasNull
public boolean wasNull()
throws java.sql.SQLException
Specified by:
wasNull in interface java.sql.CallableStatement
addBatch
public void addBatch()
throws java.sql.SQLException
Specified by:
addBatch in interface java.sql.PreparedStatement
clearParameters
public void clearParameters()
throws java.sql.SQLException
Specified by:
clearParameters in interface java.sql.PreparedStatement
execute
public boolean execute()
throws java.sql.SQLException
Specified by:
execute in interface java.sql.PreparedStatement
executeQuery
public java.sql.ResultSet executeQuery()
throws java.sql.SQLException
Specified by:
executeQuery in interface java.sql.PreparedStatement
executeUpdate
public int executeUpdate()
throws java.sql.SQLException
Specified by:
executeUpdate in interface java.sql.PreparedStatement
getMetaData
public java.sql.ResultSetMetaData getMetaData()
throws java.sql.SQLException
Specified by:
getMetaData in interface java.sql.PreparedStatement
getParameterMetaData
public java.sql.ParameterMetaData getParameterMetaData()
throws java.sql.SQLException
setArray
public void setArray(int i,
java.sql.Array x)
throws java.sql.SQLException
Specified by:
setArray in interface java.sql.PreparedStatement
setAsciiStream
public void setAsciiStream(int parameterIndex,
java.io.InputStream x,
int length)
throws java.sql.SQLException
Specified by:
setAsciiStream in interface java.sql.PreparedStatement
setBigDecimal
public void setBigDecimal(int parameterIndex,
java.math.BigDecimal x)
throws java.sql.SQLException
Specified by:
setBigDecimal in interface java.sql.PreparedStatement
setBinaryStream
public void setBinaryStream(int parameterIndex,
java.io.InputStream x,
int length)
throws java.sql.SQLException
Specified by:
setBinaryStream in interface java.sql.PreparedStatement
setBlob
public void setBlob(int i,
java.sql.Blob x)
throws java.sql.SQLException
Specified by:
setBlob in interface java.sql.PreparedStatement
setBoolean
public void setBoolean(int parameterIndex,
boolean x)
throws java.sql.SQLException
Specified by:
setBoolean in interface java.sql.PreparedStatement
setByte
public void setByte(int parameterIndex,
byte x)
throws java.sql.SQLException
Specified by:
setByte in interface java.sql.PreparedStatement
setBytes
public void setBytes(int parameterIndex,
byte[] x)
throws java.sql.SQLException
Specified by:
setBytes in interface java.sql.PreparedStatement
setCharacterStream
public void setCharacterStream(int parameterIndex,
java.io.Reader reader,
int length)
throws java.sql.SQLException
Specified by:
setCharacterStream in interface java.sql.PreparedStatement
setClob
public void setClob(int i,
java.sql.Clob x)
throws java.sql.SQLException
Specified by:
setClob in interface java.sql.PreparedStatement
setDate
public void setDate(int parameterIndex,
java.sql.Date x)
throws java.sql.SQLException
Specified by:
setDate in interface java.sql.PreparedStatement
setDate
public void setDate(int parameterIndex,
java.sql.Date x,
java.util.Calendar cal)
throws java.sql.SQLException
Specified by:
setDate in interface java.sql.PreparedStatement
setDouble
public void setDouble(int parameterIndex,
double x)
throws java.sql.SQLException
Specified by:
setDouble in interface java.sql.PreparedStatement
setFloat
public void setFloat(int parameterIndex,
float x)
throws java.sql.SQLException
Specified by:
setFloat in interface java.sql.PreparedStatement
setInt
public void setInt(int parameterIndex,
int x)
throws java.sql.SQLException
Specified by:
setInt in interface java.sql.PreparedStatement
setLong
public void setLong(int parameterIndex,
long x)
throws java.sql.SQLException
Specified by:
setLong in interface java.sql.PreparedStatement
setNull
public void setNull(int parameterIndex,
int sqlType)
throws java.sql.SQLException
Specified by:
setNull in interface java.sql.PreparedStatement
setNull
public void setNull(int paramIndex,
int sqlType,
java.lang.String typeName)
throws java.sql.SQLException
Specified by:
setNull in interface java.sql.PreparedStatement
setObject
public void setObject(int parameterIndex,
java.lang.Object x)
throws java.sql.SQLException
Specified by:
setObject in interface java.sql.PreparedStatement
setObject
public void setObject(int parameterIndex,
java.lang.Object x,
int targetSqlType)
throws java.sql.SQLException
Specified by:
setObject in interface java.sql.PreparedStatement
setObject
public void setObject(int parameterIndex,
java.lang.Object x,
int targetSqlType,
int scale)
throws java.sql.SQLException
Specified by:
setObject in interface java.sql.PreparedStatement
setRef
public void setRef(int i,
java.sql.Ref x)
throws java.sql.SQLException
Specified by:
setRef in interface java.sql.PreparedStatement
setShort
public void setShort(int parameterIndex,
short x)
throws java.sql.SQLException
Specified by:
setShort in interface java.sql.PreparedStatement
setString
public void setString(int parameterIndex,
java.lang.String x)
throws java.sql.SQLException
Specified by:
setString in interface java.sql.PreparedStatement
setTime
public void setTime(int parameterIndex,
java.sql.Time x)
throws java.sql.SQLException
Specified by:
setTime in interface java.sql.PreparedStatement
setTime
public void setTime(int parameterIndex,
java.sql.Time x,
java.util.Calendar cal)
throws java.sql.SQLException
Specified by:
setTime in interface java.sql.PreparedStatement
setTimestamp
public void setTimestamp(int parameterIndex,
java.sql.Timestamp x)
throws java.sql.SQLException
Specified by:
setTimestamp in interface java.sql.PreparedStatement
setTimestamp
public void setTimestamp(int parameterIndex,
java.sql.Timestamp x,
java.util.Calendar cal)
throws java.sql.SQLException
Specified by:
setTimestamp in interface java.sql.PreparedStatement
setURL
public void setURL(int parameterIndex,
java.net.URL x)
throws java.sql.SQLException
setUnicodeStream
public void setUnicodeStream(int parameterIndex,
java.io.InputStream x,
int length)
throws java.sql.SQLException
Specified by:
setUnicodeStream in interface java.sql.PreparedStatement
addBatch
public void addBatch(java.lang.String sql)
throws java.sql.SQLException
Specified by:
addBatch in interface java.sql.Statement
cancel
public void cancel()
throws java.sql.SQLException
Specified by:
cancel in interface java.sql.Statement
clearBatch
public void clearBatch()
throws java.sql.SQLException
Specified by:
clearBatch in interface java.sql.Statement
clearWarnings
public void clearWarnings()
throws java.sql.SQLException
Specified by:
clearWarnings in interface java.sql.Statement
close
public void close()
throws java.sql.SQLException
Specified by:
close in interface java.sql.Statement
execute
public boolean execute(java.lang.String sql)
throws java.sql.SQLException
Specified by:
execute in interface java.sql.Statement
execute
public boolean execute(java.lang.String sql,
int autoGeneratedKeys)
throws java.sql.SQLException
execute
public boolean execute(java.lang.String sql,
int[] columnIndexes)
throws java.sql.SQLException
execute
public boolean execute(java.lang.String sql,
java.lang.String[] columnNames)
throws java.sql.SQLException
executeBatch
public int[] executeBatch()
throws java.sql.SQLException
Specified by:
executeBatch in interface java.sql.Statement
executeQuery
public java.sql.ResultSet executeQuery(java.lang.String sql)
throws java.sql.SQLException
Specified by:
executeQuery in interface java.sql.Statement
executeUpdate
public int executeUpdate(java.lang.String sql)
throws java.sql.SQLException
Specified by:
executeUpdate in interface java.sql.Statement
executeUpdate
public int executeUpdate(java.lang.String sql,
int autoGeneratedKeys)
throws java.sql.SQLException
executeUpdate
public int executeUpdate(java.lang.String sql,
int[] columnIndexes)
throws java.sql.SQLException
executeUpdate
public int executeUpdate(java.lang.String sql,
java.lang.String[] columnNames)
throws java.sql.SQLException
getConnection
public java.sql.Connection getConnection()
throws java.sql.SQLException
Specified by:
getConnection in interface java.sql.Statement
getFetchDirection
public int getFetchDirection()
throws java.sql.SQLException
Specified by:
getFetchDirection in interface java.sql.Statement
getFetchSize
public int getFetchSize()
throws java.sql.SQLException
Specified by:
getFetchSize in interface java.sql.Statement
getGeneratedKeys
public java.sql.ResultSet getGeneratedKeys()
throws java.sql.SQLException
getMaxFieldSize
public int getMaxFieldSize()
throws java.sql.SQLException
Specified by:
getMaxFieldSize in interface java.sql.Statement
getMaxRows
public int getMaxRows()
throws java.sql.SQLException
Specified by:
getMaxRows in interface java.sql.Statement
getMoreResults
public boolean getMoreResults()
throws java.sql.SQLException
Specified by:
getMoreResults in interface java.sql.Statement
getMoreResults
public boolean getMoreResults(int current)
throws java.sql.SQLException
getQueryTimeout
public int getQueryTimeout()
throws java.sql.SQLException
Specified by:
getQueryTimeout in interface java.sql.Statement
getResultSet
public java.sql.ResultSet getResultSet()
throws java.sql.SQLException
Specified by:
getResultSet in interface java.sql.Statement
getResultSetConcurrency
public int getResultSetConcurrency()
throws java.sql.SQLException
Specified by:
getResultSetConcurrency in interface java.sql.Statement
getResultSetHoldability
public int getResultSetHoldability()
throws java.sql.SQLException
getResultSetType
public int getResultSetType()
throws java.sql.SQLException
Specified by:
getResultSetType in interface java.sql.Statement
getUpdateCount
public int getUpdateCount()
throws java.sql.SQLException
Specified by:
getUpdateCount in interface java.sql.Statement
getWarnings
public java.sql.SQLWarning getWarnings()
throws java.sql.SQLException
Specified by:
getWarnings in interface java.sql.Statement
setCursorName
public void setCursorName(java.lang.String name)
throws java.sql.SQLException
Specified by:
setCursorName in interface java.sql.Statement
setEscapeProcessing
public void setEscapeProcessing(boolean enable)
throws java.sql.SQLException
Specified by:
setEscapeProcessing in interface java.sql.Statement
setFetchDirection
public void setFetchDirection(int direction)
throws java.sql.SQLException
Specified by:
setFetchDirection in interface java.sql.Statement
setFetchSize
public void setFetchSize(int rows)
throws java.sql.SQLException
Specified by:
setFetchSize in interface java.sql.Statement
setMaxFieldSize
public void setMaxFieldSize(int max)
throws java.sql.SQLException
Specified by:
setMaxFieldSize in interface java.sql.Statement
setMaxRows
public void setMaxRows(int max)
throws java.sql.SQLException
Specified by:
setMaxRows in interface java.sql.Statement
setQueryTimeout
public void setQueryTimeout(int seconds)
throws java.sql.SQLException