Package com.mckoi.database.jdbc
Class MStatement
- java.lang.Object
-
- com.mckoi.database.jdbc.MStatement
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.sql.Statement
,java.sql.Wrapper
- Direct Known Subclasses:
MPreparedStatement
class MStatement extends java.lang.Object implements java.sql.Statement
An implementation of JDBC Statement.Multi-threaded issue: This class is not designed to be multi-thread safe. A Statement should not be accessed by concurrent threads.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Vector
batch_list
The list of queries to execute in a batch.private MConnection
connection
The MConnection object for this statement.private boolean
escape_processing
private int
fetch_size
private java.sql.SQLWarning
head_warning
private int
max_field_size
private int
max_row_count
private int
multi_result_set_index
For multiple result sets, the index of the result set we are currently on.private int
query_timeout
private MResultSet[]
result_set_list
The list of all MResultSet objects that represents the results of a query.private java.util.Vector
streamable_object_list
The list of streamable objects created via the 'createStreamableObject' method.
-
Constructor Summary
Constructors Constructor Description MStatement(MConnection connection)
Constructs the statement.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addBatch(SQLQuery query)
Adds a query to the batch of queries executed by this statement.void
addBatch(java.lang.String sql)
(package private) void
addSQLWarning(java.sql.SQLWarning warning)
Adds a new SQLWarning to the chain.void
cancel()
void
clearBatch()
void
clearWarnings()
void
close()
void
closeOnCompletion()
protected StreamableObject
createStreamableObject(java.io.InputStream x, int length, byte type)
Generates a new StreamableObject and stores it in the hold for future access by the server.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()
protected MResultSet[]
executeQueries(SQLQuery[] queries)
Executes a batch of SQL queries as listed as an array.protected MResultSet
executeQuery(SQLQuery query)
Executes the given SQLQuery object and fill's in at most the top 10 entries of the result set.java.sql.ResultSet
executeQuery(java.lang.String sql)
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)
void
finalize()
The statement will close when it is garbage collected.java.sql.Connection
getConnection()
int
getFetchDirection()
int
getFetchSize()
java.sql.ResultSet
getGeneratedKeys()
int
getMaxFieldSize()
int
getMaxRows()
boolean
getMoreResults()
boolean
getMoreResults(int current)
int
getQueryTimeout()
java.sql.ResultSet
getResultSet()
int
getResultSetConcurrency()
int
getResultSetHoldability()
int
getResultSetType()
int
getUpdateCount()
java.sql.SQLWarning
getWarnings()
(package private) MResultSet
internalResultSet()
Returns the single ResultSet object for this statement.(package private) MResultSet[]
internalResultSetList(int count)
Returns an array of ResultSet objects of the give length for this statement.boolean
isClosed()
boolean
isCloseOnCompletion()
boolean
isPoolable()
boolean
isWrapperFor(java.lang.Class iface)
void
setAsciiStream(int parameterIndex, java.io.InputStream x)
void
setAsciiStream(int parameterIndex, java.io.InputStream x, long length)
void
setBinaryStream(int parameterIndex, java.io.InputStream x)
void
setBinaryStream(int parameterIndex, java.io.InputStream x, long length)
void
setBlob(int parameterIndex, java.io.InputStream inputStream)
void
setBlob(int parameterIndex, java.io.InputStream inputStream, long length)
void
setCharacterStream(int parameterIndex, java.io.Reader reader)
void
setCharacterStream(int parameterIndex, java.io.Reader reader, long length)
void
setClob(int parameterIndex, java.io.Reader reader)
void
setClob(int parameterIndex, java.io.Reader reader, long length)
void
setCursorName(java.lang.String name)
void
setEscapeProcessing(boolean enable)
void
setFetchDirection(int direction)
void
setFetchSize(int rows)
void
setMaxFieldSize(int max)
void
setMaxRows(int max)
void
setNCharacterStream(int parameterIndex, java.io.Reader value)
void
setNCharacterStream(int parameterIndex, java.io.Reader value, long length)
void
setNClob(int parameterIndex, java.io.Reader reader)
void
setNClob(int parameterIndex, java.io.Reader reader, long length)
void
setNClob(int parameterIndex, java.sql.NClob value)
void
setNString(int parameterIndex, java.lang.String value)
void
setPoolable(boolean poolable)
void
setQueryTimeout(int seconds)
void
setRowId(int parameterIndex, java.sql.RowId x)
void
setSQLXML(int parameterIndex, java.sql.SQLXML xmlObject)
java.lang.Object
unwrap(java.lang.Class iface)
-
-
-
Field Detail
-
connection
private MConnection connection
The MConnection object for this statement.
-
result_set_list
private MResultSet[] result_set_list
The list of all MResultSet objects that represents the results of a query.
-
max_field_size
private int max_field_size
-
max_row_count
private int max_row_count
-
query_timeout
private int query_timeout
-
fetch_size
private int fetch_size
-
head_warning
private java.sql.SQLWarning head_warning
-
escape_processing
private boolean escape_processing
-
batch_list
private java.util.Vector batch_list
The list of queries to execute in a batch.
-
streamable_object_list
private java.util.Vector streamable_object_list
The list of streamable objects created via the 'createStreamableObject' method.
-
multi_result_set_index
private int multi_result_set_index
For multiple result sets, the index of the result set we are currently on.
-
-
Constructor Detail
-
MStatement
MStatement(MConnection connection)
Constructs the statement.
-
-
Method Detail
-
addSQLWarning
final void addSQLWarning(java.sql.SQLWarning warning)
Adds a new SQLWarning to the chain.
-
internalResultSetList
final MResultSet[] internalResultSetList(int count)
Returns an array of ResultSet objects of the give length for this statement. This is intended for multiple result queries (such as batch statements).
-
internalResultSet
final MResultSet internalResultSet()
Returns the single ResultSet object for this statement. This should only be used for single result queries.
-
createStreamableObject
protected StreamableObject createStreamableObject(java.io.InputStream x, int length, byte type)
Generates a new StreamableObject and stores it in the hold for future access by the server.
-
addBatch
protected void addBatch(SQLQuery query)
Adds a query to the batch of queries executed by this statement.
-
executeQuery
protected MResultSet executeQuery(SQLQuery query) throws java.sql.SQLException
Executes the given SQLQuery object and fill's in at most the top 10 entries of the result set.- Throws:
java.sql.SQLException
-
executeQueries
protected MResultSet[] executeQueries(SQLQuery[] queries) throws java.sql.SQLException
Executes a batch of SQL queries as listed as an array.- 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
- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql) throws java.sql.SQLException
- Specified by:
executeUpdate
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
close
public void close() throws java.sql.SQLException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getMaxFieldSize
public int getMaxFieldSize() throws java.sql.SQLException
- Specified by:
getMaxFieldSize
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
setMaxFieldSize
public void setMaxFieldSize(int max) throws java.sql.SQLException
- Specified by:
setMaxFieldSize
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getMaxRows
public int getMaxRows() throws java.sql.SQLException
- Specified by:
getMaxRows
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
setMaxRows
public void setMaxRows(int max) throws java.sql.SQLException
- Specified by:
setMaxRows
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
setEscapeProcessing
public void setEscapeProcessing(boolean enable) throws java.sql.SQLException
- Specified by:
setEscapeProcessing
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getQueryTimeout
public int getQueryTimeout() throws java.sql.SQLException
- Specified by:
getQueryTimeout
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
setQueryTimeout
public void setQueryTimeout(int seconds) throws java.sql.SQLException
- Specified by:
setQueryTimeout
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
cancel
public void cancel() throws java.sql.SQLException
- Specified by:
cancel
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getWarnings
public java.sql.SQLWarning getWarnings() throws java.sql.SQLException
- Specified by:
getWarnings
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
clearWarnings
public void clearWarnings() throws java.sql.SQLException
- Specified by:
clearWarnings
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
setCursorName
public void setCursorName(java.lang.String name) throws java.sql.SQLException
- Specified by:
setCursorName
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql) throws java.sql.SQLException
- Specified by:
execute
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getResultSet
public java.sql.ResultSet getResultSet() throws java.sql.SQLException
- Specified by:
getResultSet
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getUpdateCount
public int getUpdateCount() throws java.sql.SQLException
- Specified by:
getUpdateCount
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getMoreResults
public boolean getMoreResults() throws java.sql.SQLException
- Specified by:
getMoreResults
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
setFetchSize
public void setFetchSize(int rows) throws java.sql.SQLException
- Specified by:
setFetchSize
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getFetchSize
public int getFetchSize() throws java.sql.SQLException
- Specified by:
getFetchSize
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
setFetchDirection
public void setFetchDirection(int direction) throws java.sql.SQLException
- Specified by:
setFetchDirection
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getFetchDirection
public int getFetchDirection() throws java.sql.SQLException
- Specified by:
getFetchDirection
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getResultSetConcurrency
public int getResultSetConcurrency() throws java.sql.SQLException
- Specified by:
getResultSetConcurrency
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getResultSetType
public int getResultSetType() throws java.sql.SQLException
- Specified by:
getResultSetType
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
addBatch
public void addBatch(java.lang.String sql) throws java.sql.SQLException
- Specified by:
addBatch
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
clearBatch
public void clearBatch() throws java.sql.SQLException
- Specified by:
clearBatch
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
executeBatch
public int[] executeBatch() throws java.sql.SQLException
- Specified by:
executeBatch
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLException
- Specified by:
getConnection
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getMoreResults
public boolean getMoreResults(int current) throws java.sql.SQLException
- Specified by:
getMoreResults
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
getGeneratedKeys
public java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException
- Specified by:
getGeneratedKeys
in interfacejava.sql.Statement
- 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
- 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
- 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
- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
- Specified by:
execute
in interfacejava.sql.Statement
- 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
- 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
- Throws:
java.sql.SQLException
-
getResultSetHoldability
public int getResultSetHoldability() throws java.sql.SQLException
- Specified by:
getResultSetHoldability
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
isClosed
public boolean isClosed() throws java.sql.SQLException
- Specified by:
isClosed
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
setPoolable
public void setPoolable(boolean poolable) throws java.sql.SQLException
- Specified by:
setPoolable
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
isPoolable
public boolean isPoolable() throws java.sql.SQLException
- Specified by:
isPoolable
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
unwrap
public java.lang.Object unwrap(java.lang.Class iface) throws java.sql.SQLException
- Specified by:
unwrap
in interfacejava.sql.Wrapper
- Throws:
java.sql.SQLException
-
isWrapperFor
public boolean isWrapperFor(java.lang.Class iface) throws java.sql.SQLException
- Specified by:
isWrapperFor
in interfacejava.sql.Wrapper
- Throws:
java.sql.SQLException
-
setRowId
public void setRowId(int parameterIndex, java.sql.RowId x) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setNString
public void setNString(int parameterIndex, java.lang.String value) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setNCharacterStream
public void setNCharacterStream(int parameterIndex, java.io.Reader value, long length) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setNClob
public void setNClob(int parameterIndex, java.sql.NClob value) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setClob
public void setClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setBlob
public void setBlob(int parameterIndex, java.io.InputStream inputStream, long length) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setNClob
public void setNClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setSQLXML
public void setSQLXML(int parameterIndex, java.sql.SQLXML xmlObject) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setAsciiStream
public void setAsciiStream(int parameterIndex, java.io.InputStream x, long length) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setBinaryStream
public void setBinaryStream(int parameterIndex, java.io.InputStream x, long length) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setCharacterStream
public void setCharacterStream(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setAsciiStream
public void setAsciiStream(int parameterIndex, java.io.InputStream x) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setBinaryStream
public void setBinaryStream(int parameterIndex, java.io.InputStream x) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setCharacterStream
public void setCharacterStream(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setNCharacterStream
public void setNCharacterStream(int parameterIndex, java.io.Reader value) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setClob
public void setClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setBlob
public void setBlob(int parameterIndex, java.io.InputStream inputStream) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
setNClob
public void setNClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
isCloseOnCompletion
public boolean isCloseOnCompletion() throws java.sql.SQLException
- Specified by:
isCloseOnCompletion
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
closeOnCompletion
public void closeOnCompletion() throws java.sql.SQLException
- Specified by:
closeOnCompletion
in interfacejava.sql.Statement
- Throws:
java.sql.SQLException
-
finalize
public void finalize()
The statement will close when it is garbage collected.- Overrides:
finalize
in classjava.lang.Object
-
-