public final class NewProxyStatement extends java.lang.Object implements java.sql.Statement, C3P0ProxyStatement, ProxyResultSetDetachable
Modifier and Type | Field and Description |
---|---|
protected java.sql.Statement |
inner |
RAW_STATEMENT
Modifier and Type | Method and Description |
---|---|
void |
addBatch(java.lang.String a) |
void |
cancel() |
void |
clearBatch() |
void |
clearWarnings() |
void |
close() |
void |
closeOnCompletion() |
void |
detachProxyResultSet(java.sql.ResultSet prs) |
boolean |
execute(java.lang.String a) |
boolean |
execute(java.lang.String a,
int b) |
boolean |
execute(java.lang.String a,
int[] b) |
boolean |
execute(java.lang.String a,
java.lang.String[] b) |
int[] |
executeBatch() |
java.sql.ResultSet |
executeQuery(java.lang.String a) |
int |
executeUpdate(java.lang.String a) |
int |
executeUpdate(java.lang.String a,
int b) |
int |
executeUpdate(java.lang.String a,
int[] b) |
int |
executeUpdate(java.lang.String a,
java.lang.String[] b) |
java.sql.Connection |
getConnection() |
int |
getFetchDirection() |
int |
getFetchSize() |
java.sql.ResultSet |
getGeneratedKeys() |
int |
getMaxFieldSize() |
int |
getMaxRows() |
boolean |
getMoreResults() |
boolean |
getMoreResults(int a) |
int |
getQueryTimeout() |
java.sql.ResultSet |
getResultSet() |
int |
getResultSetConcurrency() |
int |
getResultSetHoldability() |
int |
getResultSetType() |
int |
getUpdateCount() |
java.sql.SQLWarning |
getWarnings() |
boolean |
isClosed() |
boolean |
isCloseOnCompletion() |
boolean |
isPoolable() |
boolean |
isWrapperFor(java.lang.Class a) |
java.lang.Object |
rawStatementOperation(java.lang.reflect.Method m,
java.lang.Object target,
java.lang.Object[] args)
Allows one to work with the unproxied, raw vendor-provided Statement .
|
void |
setCursorName(java.lang.String a) |
void |
setEscapeProcessing(boolean a) |
void |
setFetchDirection(int a) |
void |
setFetchSize(int a) |
void |
setMaxFieldSize(int a) |
void |
setMaxRows(int a) |
void |
setPoolable(boolean a) |
void |
setQueryTimeout(int a) |
java.lang.Object |
unwrap(java.lang.Class a) |
public final void close() throws java.sql.SQLException
close
in interface java.lang.AutoCloseable
close
in interface java.sql.Statement
java.sql.SQLException
public final java.sql.Connection getConnection() throws java.sql.SQLException
getConnection
in interface java.sql.Statement
java.sql.SQLException
public final java.sql.SQLWarning getWarnings() throws java.sql.SQLException
getWarnings
in interface java.sql.Statement
java.sql.SQLException
public final void clearWarnings() throws java.sql.SQLException
clearWarnings
in interface java.sql.Statement
java.sql.SQLException
public final boolean isClosed() throws java.sql.SQLException
isClosed
in interface java.sql.Statement
java.sql.SQLException
public final boolean execute(java.lang.String a) throws java.sql.SQLException
execute
in interface java.sql.Statement
java.sql.SQLException
public final boolean execute(java.lang.String a, java.lang.String[] b) throws java.sql.SQLException
execute
in interface java.sql.Statement
java.sql.SQLException
public final boolean execute(java.lang.String a, int[] b) throws java.sql.SQLException
execute
in interface java.sql.Statement
java.sql.SQLException
public final boolean execute(java.lang.String a, int b) throws java.sql.SQLException
execute
in interface java.sql.Statement
java.sql.SQLException
public final java.sql.ResultSet executeQuery(java.lang.String a) throws java.sql.SQLException
executeQuery
in interface java.sql.Statement
java.sql.SQLException
public final int executeUpdate(java.lang.String a, int b) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
java.sql.SQLException
public final int executeUpdate(java.lang.String a, int[] b) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
java.sql.SQLException
public final int executeUpdate(java.lang.String a, java.lang.String[] b) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
java.sql.SQLException
public final int executeUpdate(java.lang.String a) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
java.sql.SQLException
public final int getMaxFieldSize() throws java.sql.SQLException
getMaxFieldSize
in interface java.sql.Statement
java.sql.SQLException
public final void setMaxFieldSize(int a) throws java.sql.SQLException
setMaxFieldSize
in interface java.sql.Statement
java.sql.SQLException
public final int getMaxRows() throws java.sql.SQLException
getMaxRows
in interface java.sql.Statement
java.sql.SQLException
public final void setMaxRows(int a) throws java.sql.SQLException
setMaxRows
in interface java.sql.Statement
java.sql.SQLException
public final void setEscapeProcessing(boolean a) throws java.sql.SQLException
setEscapeProcessing
in interface java.sql.Statement
java.sql.SQLException
public final int getQueryTimeout() throws java.sql.SQLException
getQueryTimeout
in interface java.sql.Statement
java.sql.SQLException
public final void setQueryTimeout(int a) throws java.sql.SQLException
setQueryTimeout
in interface java.sql.Statement
java.sql.SQLException
public final void cancel() throws java.sql.SQLException
cancel
in interface java.sql.Statement
java.sql.SQLException
public final void setCursorName(java.lang.String a) throws java.sql.SQLException
setCursorName
in interface java.sql.Statement
java.sql.SQLException
public final java.sql.ResultSet getResultSet() throws java.sql.SQLException
getResultSet
in interface java.sql.Statement
java.sql.SQLException
public final int getUpdateCount() throws java.sql.SQLException
getUpdateCount
in interface java.sql.Statement
java.sql.SQLException
public final boolean getMoreResults(int a) throws java.sql.SQLException
getMoreResults
in interface java.sql.Statement
java.sql.SQLException
public final boolean getMoreResults() throws java.sql.SQLException
getMoreResults
in interface java.sql.Statement
java.sql.SQLException
public final void setFetchDirection(int a) throws java.sql.SQLException
setFetchDirection
in interface java.sql.Statement
java.sql.SQLException
public final int getFetchDirection() throws java.sql.SQLException
getFetchDirection
in interface java.sql.Statement
java.sql.SQLException
public final void setFetchSize(int a) throws java.sql.SQLException
setFetchSize
in interface java.sql.Statement
java.sql.SQLException
public final int getFetchSize() throws java.sql.SQLException
getFetchSize
in interface java.sql.Statement
java.sql.SQLException
public final int getResultSetConcurrency() throws java.sql.SQLException
getResultSetConcurrency
in interface java.sql.Statement
java.sql.SQLException
public final int getResultSetType() throws java.sql.SQLException
getResultSetType
in interface java.sql.Statement
java.sql.SQLException
public final void addBatch(java.lang.String a) throws java.sql.SQLException
addBatch
in interface java.sql.Statement
java.sql.SQLException
public final void clearBatch() throws java.sql.SQLException
clearBatch
in interface java.sql.Statement
java.sql.SQLException
public final int[] executeBatch() throws java.sql.SQLException
executeBatch
in interface java.sql.Statement
java.sql.SQLException
public final java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException
getGeneratedKeys
in interface java.sql.Statement
java.sql.SQLException
public final int getResultSetHoldability() throws java.sql.SQLException
getResultSetHoldability
in interface java.sql.Statement
java.sql.SQLException
public final void setPoolable(boolean a) throws java.sql.SQLException
setPoolable
in interface java.sql.Statement
java.sql.SQLException
public final boolean isPoolable() throws java.sql.SQLException
isPoolable
in interface java.sql.Statement
java.sql.SQLException
public final void closeOnCompletion() throws java.sql.SQLException
closeOnCompletion
in interface java.sql.Statement
java.sql.SQLException
public final boolean isCloseOnCompletion() throws java.sql.SQLException
isCloseOnCompletion
in interface java.sql.Statement
java.sql.SQLException
public final java.lang.Object unwrap(java.lang.Class a) throws java.sql.SQLException
unwrap
in interface java.sql.Wrapper
java.sql.SQLException
public final boolean isWrapperFor(java.lang.Class a) throws java.sql.SQLException
isWrapperFor
in interface java.sql.Wrapper
java.sql.SQLException
public void detachProxyResultSet(java.sql.ResultSet prs)
detachProxyResultSet
in interface ProxyResultSetDetachable
public java.lang.Object rawStatementOperation(java.lang.reflect.Method m, java.lang.Object target, java.lang.Object[] args) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.sql.SQLException
C3P0ProxyStatement
Allows one to work with the unproxied, raw vendor-provided Statement . Some database companies never got over the "common interfaces mean no more vendor lock-in!" thing, and offer non-standard API on their Statements. This method permits you to "pierce" the connection-pooling layer to call non-standard methods on the original Statement, or to pass the original Statement to functions that are not implementation neutral.
To use this functionality, you'll need to cast a Statement retrieved from a c3p0-provided Connection to a C3P0ProxyStatement.
This method works by making a reflective call of method m on Object target (which may be null for static methods), passing and argument list args. For the method target, or for any argument, you may substitute the special token C3P0ProxyStatement.RAW_STATEMENT
Any ResultSets returned by the operation will be proxied and c3p0-managed, meaning that these resources will be automatically closed if the user does not close them first when this Statement is closed or checked into the statement cache. Any other resources returned by the operation are the user's responsibility to clean up!
If you have turned statement pooling on, incautious use of this method can corrupt the PreparedStatement cache, by breaking the invariant that all cached PreparedStatements should be equivalent to a PreparedStatement newly created with the same arguments to prepareStatement(...) or prepareCall(...). If your vendor supplies API that allows you to modify the state or configuration of a Statement in some nonstandard way, and you do not undo this modification prior to closing the Statement or the Connection that prepared it, future preparers of the same Statement may or may not see your modification, depending on your use of the cache. Thus, it is inadvisable to use this method to call nonstandard mutators on PreparedStatements if statement pooling is turned on..
rawStatementOperation
in interface C3P0ProxyStatement
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.sql.SQLException