Class NewProxyStatement
- All Implemented Interfaces:
C3P0ProxyStatement
,ProxyResultSetDetachable
,AutoCloseable
,Statement
,Wrapper
-
Field Summary
FieldsFields inherited from interface com.mchange.v2.c3p0.C3P0ProxyStatement
RAW_STATEMENT
Fields inherited from interface java.sql.Statement
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
final void
cancel()
final void
final void
final void
close()
final void
void
final String
enquoteIdentifier
(String a, boolean b) final String
final String
final boolean
final boolean
final boolean
final boolean
final int[]
final long[]
final long
final long
executeLargeUpdate
(String a, int b) final long
executeLargeUpdate
(String a, int[] b) final long
executeLargeUpdate
(String a, String[] b) final ResultSet
final int
final int
executeUpdate
(String a, int b) final int
executeUpdate
(String a, int[] b) final int
executeUpdate
(String a, String[] b) final Connection
final int
final int
final ResultSet
final long
final long
final int
final int
final boolean
final boolean
getMoreResults
(int a) final int
final ResultSet
final int
final int
final int
final int
final SQLWarning
final boolean
isClosed()
final boolean
final boolean
final boolean
final boolean
rawStatementOperation
(Method m, Object target, Object[] args) Allows one to work with the unproxied, raw vendor-provided Statement .final void
final void
setEscapeProcessing
(boolean a) final void
setFetchDirection
(int a) final void
setFetchSize
(int a) final void
setLargeMaxRows
(long a) final void
setMaxFieldSize
(int a) final void
setMaxRows
(int a) final void
setPoolable
(boolean a) final void
setQueryTimeout
(int a) toString()
final Object
-
Field Details
-
inner
-
-
Method Details
-
execute
- Specified by:
execute
in interfaceStatement
- Throws:
SQLException
-
execute
- Specified by:
execute
in interfaceStatement
- Throws:
SQLException
-
execute
- Specified by:
execute
in interfaceStatement
- Throws:
SQLException
-
execute
- Specified by:
execute
in interfaceStatement
- Throws:
SQLException
-
cancel
- Specified by:
cancel
in interfaceStatement
- Throws:
SQLException
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceStatement
- Throws:
SQLException
-
getConnection
- Specified by:
getConnection
in interfaceStatement
- Throws:
SQLException
-
getWarnings
- Specified by:
getWarnings
in interfaceStatement
- Throws:
SQLException
-
clearWarnings
- Specified by:
clearWarnings
in interfaceStatement
- Throws:
SQLException
-
isClosed
- Specified by:
isClosed
in interfaceStatement
- Throws:
SQLException
-
executeQuery
- Specified by:
executeQuery
in interfaceStatement
- Throws:
SQLException
-
executeUpdate
- Specified by:
executeUpdate
in interfaceStatement
- Throws:
SQLException
-
executeUpdate
- Specified by:
executeUpdate
in interfaceStatement
- Throws:
SQLException
-
executeUpdate
- Specified by:
executeUpdate
in interfaceStatement
- Throws:
SQLException
-
executeUpdate
- Specified by:
executeUpdate
in interfaceStatement
- Throws:
SQLException
-
getMaxFieldSize
- Specified by:
getMaxFieldSize
in interfaceStatement
- Throws:
SQLException
-
setMaxFieldSize
- Specified by:
setMaxFieldSize
in interfaceStatement
- Throws:
SQLException
-
getMaxRows
- Specified by:
getMaxRows
in interfaceStatement
- Throws:
SQLException
-
setMaxRows
- Specified by:
setMaxRows
in interfaceStatement
- Throws:
SQLException
-
setEscapeProcessing
- Specified by:
setEscapeProcessing
in interfaceStatement
- Throws:
SQLException
-
getQueryTimeout
- Specified by:
getQueryTimeout
in interfaceStatement
- Throws:
SQLException
-
setQueryTimeout
- Specified by:
setQueryTimeout
in interfaceStatement
- Throws:
SQLException
-
setCursorName
- Specified by:
setCursorName
in interfaceStatement
- Throws:
SQLException
-
getResultSet
- Specified by:
getResultSet
in interfaceStatement
- Throws:
SQLException
-
getUpdateCount
- Specified by:
getUpdateCount
in interfaceStatement
- Throws:
SQLException
-
getMoreResults
- Specified by:
getMoreResults
in interfaceStatement
- Throws:
SQLException
-
getMoreResults
- Specified by:
getMoreResults
in interfaceStatement
- Throws:
SQLException
-
setFetchDirection
- Specified by:
setFetchDirection
in interfaceStatement
- Throws:
SQLException
-
getFetchDirection
- Specified by:
getFetchDirection
in interfaceStatement
- Throws:
SQLException
-
setFetchSize
- Specified by:
setFetchSize
in interfaceStatement
- Throws:
SQLException
-
getFetchSize
- Specified by:
getFetchSize
in interfaceStatement
- Throws:
SQLException
-
getResultSetConcurrency
- Specified by:
getResultSetConcurrency
in interfaceStatement
- Throws:
SQLException
-
getResultSetType
- Specified by:
getResultSetType
in interfaceStatement
- Throws:
SQLException
-
addBatch
- Specified by:
addBatch
in interfaceStatement
- Throws:
SQLException
-
clearBatch
- Specified by:
clearBatch
in interfaceStatement
- Throws:
SQLException
-
executeBatch
- Specified by:
executeBatch
in interfaceStatement
- Throws:
SQLException
-
getGeneratedKeys
- Specified by:
getGeneratedKeys
in interfaceStatement
- Throws:
SQLException
-
getResultSetHoldability
- Specified by:
getResultSetHoldability
in interfaceStatement
- Throws:
SQLException
-
setPoolable
- Specified by:
setPoolable
in interfaceStatement
- Throws:
SQLException
-
isPoolable
- Specified by:
isPoolable
in interfaceStatement
- Throws:
SQLException
-
closeOnCompletion
- Specified by:
closeOnCompletion
in interfaceStatement
- Throws:
SQLException
-
isCloseOnCompletion
- Specified by:
isCloseOnCompletion
in interfaceStatement
- Throws:
SQLException
-
getLargeUpdateCount
- Specified by:
getLargeUpdateCount
in interfaceStatement
- Throws:
SQLException
-
setLargeMaxRows
- Specified by:
setLargeMaxRows
in interfaceStatement
- Throws:
SQLException
-
getLargeMaxRows
- Specified by:
getLargeMaxRows
in interfaceStatement
- Throws:
SQLException
-
executeLargeBatch
- Specified by:
executeLargeBatch
in interfaceStatement
- Throws:
SQLException
-
executeLargeUpdate
- Specified by:
executeLargeUpdate
in interfaceStatement
- Throws:
SQLException
-
executeLargeUpdate
- Specified by:
executeLargeUpdate
in interfaceStatement
- Throws:
SQLException
-
executeLargeUpdate
- Specified by:
executeLargeUpdate
in interfaceStatement
- Throws:
SQLException
-
executeLargeUpdate
- Specified by:
executeLargeUpdate
in interfaceStatement
- Throws:
SQLException
-
enquoteLiteral
- Specified by:
enquoteLiteral
in interfaceStatement
- Throws:
SQLException
-
enquoteIdentifier
- Specified by:
enquoteIdentifier
in interfaceStatement
- Throws:
SQLException
-
isSimpleIdentifier
- Specified by:
isSimpleIdentifier
in interfaceStatement
- Throws:
SQLException
-
enquoteNCharLiteral
- Specified by:
enquoteNCharLiteral
in interfaceStatement
- Throws:
SQLException
-
unwrap
- Specified by:
unwrap
in interfaceWrapper
- Throws:
SQLException
-
isWrapperFor
- Specified by:
isWrapperFor
in interfaceWrapper
- Throws:
SQLException
-
toString
-
detachProxyResultSet
- Specified by:
detachProxyResultSet
in interfaceProxyResultSetDetachable
-
rawStatementOperation
public Object rawStatementOperation(Method m, Object target, Object[] args) throws IllegalAccessException, InvocationTargetException, SQLException Description copied from interface: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..
- Specified by:
rawStatementOperation
in interfaceC3P0ProxyStatement
- Throws:
IllegalAccessException
InvocationTargetException
SQLException
-