|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.mysql.jdbc.StatementImpl
public class StatementImpl
A Statement object is used for executing a static SQL statement and obtaining the results produced by it.
Only one ResultSet per Statement can be open at any point in time. Therefore, if the reading of one ResultSet is interleaved with the reading of another, each must have been generated by different Statements. All statement execute methods implicitly close a statement's current ResultSet if an open one exists.
Statement
,
ResultSetInternalMethods
Nested Class Summary | |
---|---|
(package private) class |
StatementImpl.CancelTask
Thread used to implement query timeouts...Eventually we could be more efficient and have one thread with timers, but this is a straightforward and simple way to implement a feature that isn't used all that often. |
Field Summary | |
---|---|
protected java.util.List |
batchedArgs
Holds batched commands |
protected java.util.ArrayList |
batchedGeneratedKeys
|
protected java.lang.Object |
cancelTimeoutMutex
Mutex to prevent race between returning query results and noticing that we're timed-out or cancelled. |
protected SingleByteCharsetConverter |
charConverter
The character converter to use (if available) |
protected java.lang.String |
charEncoding
The character encoding to use (if available) |
protected ConnectionImpl |
connection
The connection that created us |
protected long |
connectionId
|
protected boolean |
continueBatchOnError
|
protected java.lang.String |
currentCatalog
The catalog in use |
protected boolean |
doEscapeProcessing
Should we process escape codes? |
protected com.mysql.jdbc.profiler.ProfilerEventHandler |
eventSink
If we're profiling, where should events go to? |
protected boolean |
holdResultsOpenOverClose
Should this statement hold results open over .close() irregardless of connection's setting? |
protected boolean |
isClosed
Has this statement been closed? |
protected long |
lastInsertId
The auto_increment value for the last insert |
protected boolean |
lastQueryIsOnDupKeyUpdate
Whether or not the last query was of the form ON DUPLICATE KEY UPDATE |
protected int |
maxFieldSize
The max field size for this statement |
protected int |
maxRows
The maximum number of rows to return for this statement (-1 means _all_ rows) |
protected boolean |
maxRowsChanged
Has someone changed this for this statement? |
protected java.util.Set |
openResults
Set of currently-open ResultSets |
protected boolean |
pedantic
Are we in pedantic mode? |
protected static java.lang.String |
PING_MARKER
|
protected PingTarget |
pingTarget
|
protected java.lang.Throwable |
pointOfOrigin
Where this statement was created, only used if profileSql or useUsageAdvisor set to true. |
protected boolean |
profileSQL
Should we profile? |
protected ResultSetInternalMethods |
results
The current results |
protected int |
resultSetConcurrency
The concurrency for this result set (updatable or not) |
protected int |
resultSetType
The type of this result set (scroll sensitive or in-sensitive) |
protected boolean |
retrieveGeneratedKeys
|
protected static int |
statementCounter
Used to generate IDs when profiling. |
protected int |
statementId
Used to identify this statement when profiling. |
protected int |
timeoutInMillis
The timeout for a query |
protected long |
updateCount
The update count for this statement |
protected boolean |
useLegacyDatetimeCode
|
static byte |
USES_VARIABLES_FALSE
|
static byte |
USES_VARIABLES_TRUE
|
static byte |
USES_VARIABLES_UNKNOWN
|
protected boolean |
useUsageAdvisor
Should we use the usage advisor? |
protected java.sql.SQLWarning |
warningChain
The warnings chain. |
protected boolean |
wasCancelled
|
protected boolean |
wasCancelledByTimeout
|
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 |
Constructor Summary | |
---|---|
StatementImpl(ConnectionImpl c,
java.lang.String catalog)
Constructor for a Statement. |
Method Summary | |
---|---|
void |
addBatch(java.lang.String sql)
DOCUMENT ME! |
void |
cancel()
Cancels this Statement object if both the DBMS and driver support aborting an SQL statement. |
protected void |
checkClosed()
Checks if closed() has been called, and throws an exception if so |
protected void |
checkForDml(java.lang.String sql,
char firstStatementChar)
Checks if the given SQL query with the given first non-ws char is a DML statement. |
protected void |
checkNullOrEmptyQuery(java.lang.String sql)
Method checkNullOrEmptyQuery. |
void |
clearBatch()
JDBC 2.0 Make the set of commands in the current batch empty. |
void |
clearWarnings()
After this call, getWarnings returns null until a new warning is reported for this Statement. |
void |
close()
In many cases, it is desirable to immediately release a Statement's database and JDBC resources instead of waiting for this to happen when it is automatically closed. |
protected void |
closeAllOpenResults()
Close any open result sets that have been 'held open' |
protected boolean |
containsOnDuplicateKeyInString(java.lang.String sql)
|
protected boolean |
createStreamingResultSet()
We only stream result sets when they are forward-only, read-only, and the fetch size has been set to Integer.MIN_VALUE |
void |
disableStreamingResults()
Resets this statements fetch size and result set type to the values they had before enableStreamingResults() was called. |
protected void |
doPingInstead()
|
void |
enableStreamingResults()
Workaround for containers that 'check' for sane values of Statement.setFetchSize() so that applications can use the Java variant of libmysql's mysql_use_result() behavior. |
boolean |
execute(java.lang.String sql)
Execute a SQL statement that may return multiple results. |
boolean |
execute(java.lang.String sql,
int returnGeneratedKeys)
|
boolean |
execute(java.lang.String sql,
int[] generatedKeyIndices)
|
boolean |
execute(java.lang.String sql,
java.lang.String[] generatedKeyNames)
|
int[] |
executeBatch()
JDBC 2.0 Submit a batch of commands to the database for execution. |
java.sql.ResultSet |
executeQuery(java.lang.String sql)
Execute a SQL statement that retruns a single ResultSet |
protected void |
executeSimpleNonQuery(ConnectionImpl c,
java.lang.String nonQuery)
|
int |
executeUpdate(java.lang.String sql)
Execute a SQL INSERT, UPDATE or DELETE statement. |
protected int |
executeUpdate(java.lang.String sql,
boolean isBatch,
boolean returnGeneratedKeys)
|
int |
executeUpdate(java.lang.String sql,
int returnGeneratedKeys)
|
int |
executeUpdate(java.lang.String sql,
int[] generatedKeyIndices)
|
int |
executeUpdate(java.lang.String sql,
java.lang.String[] generatedKeyNames)
|
protected int |
findStartOfStatement(java.lang.String sql)
|
protected ResultSetInternalMethods |
generatePingResultSet()
|
protected void |
getBatchedGeneratedKeys(int maxKeys)
|
protected void |
getBatchedGeneratedKeys(java.sql.Statement batchedStatement)
|
protected java.util.Calendar |
getCalendarInstanceForSessionOrNew()
Optimization to only use one calendar per-session, or calculate it for each call, depending on user configuration |
java.sql.Connection |
getConnection()
JDBC 2.0 Return the Connection that produced the Statement. |
ExceptionInterceptor |
getExceptionInterceptor()
|
int |
getFetchDirection()
JDBC 2.0 Determine the fetch direction. |
int |
getFetchSize()
JDBC 2.0 Determine the default fetch size. |
java.sql.ResultSet |
getGeneratedKeys()
DOCUMENT ME! |
protected java.sql.ResultSet |
getGeneratedKeysInternal()
|
protected java.sql.ResultSet |
getGeneratedKeysInternal(int numKeys)
|
protected int |
getId()
Returns the id used when profiling |
long |
getLastInsertID()
getLastInsertID returns the value of the auto_incremented key after an executeQuery() or excute() call. |
java.io.InputStream |
getLocalInfileInputStream()
Returns the InputStream instance that will be used to send data in response to a "LOAD DATA LOCAL INFILE" statement. |
long |
getLongUpdateCount()
getLongUpdateCount returns the current result as an update count, if the result is a ResultSet or there are no more results, -1 is returned. |
int |
getMaxFieldSize()
The maxFieldSize limit (in bytes) is the maximum amount of data returned for any column value; it only applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR and LONGVARCHAR columns. |
int |
getMaxRows()
The maxRows limit is set to limit the number of rows that any ResultSet can contain. |
boolean |
getMoreResults()
getMoreResults moves to a Statement's next result. |
boolean |
getMoreResults(int current)
|
protected int |
getOnDuplicateKeyLocation(java.lang.String sql)
|
int |
getOpenResultSetCount()
Returns the number of open result sets for this statement. |
int |
getQueryTimeout()
The queryTimeout limit is the number of seconds the driver will wait for a Statement to execute. |
java.sql.ResultSet |
getResultSet()
getResultSet returns the current result as a ResultSet. |
int |
getResultSetConcurrency()
JDBC 2.0 Determine the result set concurrency. |
int |
getResultSetHoldability()
|
protected ResultSetInternalMethods |
getResultSetInternal()
|
int |
getResultSetType()
JDBC 2.0 Determine the result set type. |
int |
getUpdateCount()
getUpdateCount returns the current result as an update count, if the result is a ResultSet or there are no more results, -1 is returned. |
java.sql.SQLWarning |
getWarnings()
The first warning reported by calls on this Statement is returned. |
protected java.sql.SQLException |
handleExceptionForBatch(int endOfBatchIndex,
int numValuesPerBatch,
int[] updateCounts,
java.sql.SQLException ex)
|
protected boolean |
hasDeadlockOrTimeoutRolledBackTx(java.sql.SQLException ex)
|
boolean |
isClosed()
|
boolean |
isPoolable()
|
boolean |
isWrapperFor(java.lang.Class iface)
Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. |
protected int |
processMultiCountsAndKeys(StatementImpl batchedStatement,
int updateCountCounter,
int[] updateCounts)
|
protected void |
realClose(boolean calledExplicitly,
boolean closeOpenResults)
Closes this statement, and frees resources. |
void |
removeOpenResultSet(java.sql.ResultSet rs)
Callback for result set instances to remove them from the Set that tracks them per-statement |
protected void |
resetCancelledState()
|
void |
setCursorName(java.lang.String name)
setCursorName defines the SQL cursor name that will be used by subsequent execute methods. |
void |
setEscapeProcessing(boolean enable)
If escape scanning is on (the default), the driver will do escape substitution before sending the SQL to the database. |
void |
setFetchDirection(int direction)
JDBC 2.0 Give a hint as to the direction in which the rows in a result set will be processed. |
void |
setFetchSize(int rows)
JDBC 2.0 Give the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed. |
protected void |
setHoldResultsOpenOverClose(boolean holdResultsOpenOverClose)
|
void |
setLocalInfileInputStream(java.io.InputStream stream)
Sets an InputStream instance that will be used to send data to the MySQL server for a "LOAD DATA LOCAL INFILE" statement rather than a FileInputStream or URLInputStream that represents the path given as an argument to the statement. |
void |
setMaxFieldSize(int max)
Sets the maxFieldSize |
void |
setMaxRows(int max)
Set the maximum number of rows |
void |
setPingTarget(PingTarget pingTarget)
|
void |
setPoolable(boolean poolable)
|
void |
setQueryTimeout(int seconds)
Sets the queryTimeout limit |
(package private) void |
setResultSetConcurrency(int concurrencyFlag)
Sets the concurrency for result sets generated by this statement |
(package private) void |
setResultSetType(int typeFlag)
Sets the result set type for result sets generated by this statement |
java.lang.Object |
unwrap(java.lang.Class iface)
Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final java.lang.String PING_MARKER
protected java.lang.Object cancelTimeoutMutex
protected static int statementCounter
public static final byte USES_VARIABLES_FALSE
public static final byte USES_VARIABLES_TRUE
public static final byte USES_VARIABLES_UNKNOWN
protected boolean wasCancelled
protected boolean wasCancelledByTimeout
protected java.util.List batchedArgs
protected SingleByteCharsetConverter charConverter
protected java.lang.String charEncoding
protected ConnectionImpl connection
protected long connectionId
protected java.lang.String currentCatalog
protected boolean doEscapeProcessing
protected com.mysql.jdbc.profiler.ProfilerEventHandler eventSink
protected boolean isClosed
protected long lastInsertId
protected int maxFieldSize
protected int maxRows
protected boolean maxRowsChanged
protected java.util.Set openResults
protected boolean pedantic
protected java.lang.Throwable pointOfOrigin
protected boolean profileSQL
protected ResultSetInternalMethods results
protected int resultSetConcurrency
protected int resultSetType
protected int statementId
protected int timeoutInMillis
protected long updateCount
protected boolean useUsageAdvisor
protected java.sql.SQLWarning warningChain
protected boolean holdResultsOpenOverClose
protected java.util.ArrayList batchedGeneratedKeys
protected boolean retrieveGeneratedKeys
protected boolean continueBatchOnError
protected PingTarget pingTarget
protected boolean useLegacyDatetimeCode
protected boolean lastQueryIsOnDupKeyUpdate
Constructor Detail |
---|
public StatementImpl(ConnectionImpl c, java.lang.String catalog) throws java.sql.SQLException
c
- the Connection instantation that creates uscatalog
- the database name in use when we were created
java.sql.SQLException
- if an error occurs.Method Detail |
---|
public void addBatch(java.lang.String sql) throws java.sql.SQLException
addBatch
in interface java.sql.Statement
sql
- DOCUMENT ME!
java.sql.SQLException
- DOCUMENT ME!public void cancel() throws java.sql.SQLException
cancel
in interface java.sql.Statement
java.sql.SQLException
protected void checkClosed() throws java.sql.SQLException
java.sql.SQLException
- if this statement has been closedprotected void checkForDml(java.lang.String sql, char firstStatementChar) throws java.sql.SQLException
sql
- the SQL to checkfirstStatementChar
- the UC first non-ws char of the statement
java.sql.SQLException
- if the statement contains DMLprotected void checkNullOrEmptyQuery(java.lang.String sql) throws java.sql.SQLException
sql
- the SQL to check
java.sql.SQLException
- if query is null or empty.public void clearBatch() throws java.sql.SQLException
clearBatch
in interface java.sql.Statement
java.sql.SQLException
- if a database-access error occurs, or the driver does not
support batch statementspublic void clearWarnings() throws java.sql.SQLException
clearWarnings
in interface java.sql.Statement
java.sql.SQLException
- if a database access error occurs (why?)public void close() throws java.sql.SQLException
Note: A Statement is automatically closed when it is garbage collected. When a Statement is closed, its current ResultSet, if one exists, is also closed.
close
in interface java.sql.Statement
java.sql.SQLException
- if a database access error occursprotected void closeAllOpenResults()
public void removeOpenResultSet(java.sql.ResultSet rs)
Statement
public int getOpenResultSetCount()
Statement
protected boolean createStreamingResultSet()
public void enableStreamingResults() throws java.sql.SQLException
Statement
java.sql.SQLException
public void disableStreamingResults() throws java.sql.SQLException
Statement
java.sql.SQLException
public boolean execute(java.lang.String sql) throws java.sql.SQLException
execute
in interface java.sql.Statement
sql
- any SQL statement
java.sql.SQLException
- if a database access error occursprotected void resetCancelledState()
public boolean execute(java.lang.String sql, int returnGeneratedKeys) throws java.sql.SQLException
execute
in interface java.sql.Statement
java.sql.SQLException
execute(String, int)
public boolean execute(java.lang.String sql, int[] generatedKeyIndices) throws java.sql.SQLException
execute
in interface java.sql.Statement
java.sql.SQLException
execute(String, int[])
public boolean execute(java.lang.String sql, java.lang.String[] generatedKeyNames) throws java.sql.SQLException
execute
in interface java.sql.Statement
java.sql.SQLException
execute(String, String[])
public int[] executeBatch() throws java.sql.SQLException
executeBatch
in interface java.sql.Statement
java.sql.SQLException
- if a database-access error occurs, or the driver does not
support batch statements
java.sql.BatchUpdateException
- DOCUMENT ME!protected final boolean hasDeadlockOrTimeoutRolledBackTx(java.sql.SQLException ex)
protected int processMultiCountsAndKeys(StatementImpl batchedStatement, int updateCountCounter, int[] updateCounts) throws java.sql.SQLException
java.sql.SQLException
protected java.sql.SQLException handleExceptionForBatch(int endOfBatchIndex, int numValuesPerBatch, int[] updateCounts, java.sql.SQLException ex) throws java.sql.BatchUpdateException
java.sql.BatchUpdateException
public java.sql.ResultSet executeQuery(java.lang.String sql) throws java.sql.SQLException
executeQuery
in interface java.sql.Statement
sql
- typically a static SQL SELECT statement
java.sql.SQLException
- if a database access error occursprotected void doPingInstead() throws java.sql.SQLException
java.sql.SQLException
protected ResultSetInternalMethods generatePingResultSet() throws java.sql.SQLException
java.sql.SQLException
protected void executeSimpleNonQuery(ConnectionImpl c, java.lang.String nonQuery) throws java.sql.SQLException
java.sql.SQLException
public int executeUpdate(java.lang.String sql) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
sql
- a SQL statement
java.sql.SQLException
- if a database access error occursprotected int executeUpdate(java.lang.String sql, boolean isBatch, boolean returnGeneratedKeys) throws java.sql.SQLException
java.sql.SQLException
public int executeUpdate(java.lang.String sql, int returnGeneratedKeys) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
java.sql.SQLException
executeUpdate(String, int)
public int executeUpdate(java.lang.String sql, int[] generatedKeyIndices) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
java.sql.SQLException
executeUpdate(String, int[])
public int executeUpdate(java.lang.String sql, java.lang.String[] generatedKeyNames) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
java.sql.SQLException
executeUpdate(String, String[])
protected java.util.Calendar getCalendarInstanceForSessionOrNew()
public java.sql.Connection getConnection() throws java.sql.SQLException
getConnection
in interface java.sql.Statement
java.sql.SQLException
- if an error occurspublic int getFetchDirection() throws java.sql.SQLException
getFetchDirection
in interface java.sql.Statement
java.sql.SQLException
- if a database-access error occurspublic int getFetchSize() throws java.sql.SQLException
getFetchSize
in interface java.sql.Statement
java.sql.SQLException
- if an error occurspublic java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException
getGeneratedKeys
in interface java.sql.Statement
java.sql.SQLException
- DOCUMENT ME!protected java.sql.ResultSet getGeneratedKeysInternal() throws java.sql.SQLException
java.sql.SQLException
protected java.sql.ResultSet getGeneratedKeysInternal(int numKeys) throws java.sql.SQLException
java.sql.SQLException
protected int getId()
public long getLastInsertID()
This gets around the un-threadsafe behavior of "select LAST_INSERT_ID()" which is tied to the Connection that created this Statement, and therefore could have had many INSERTS performed before one gets a chance to call "select LAST_INSERT_ID()".
public long getLongUpdateCount()
This method returns longs as MySQL server versions newer than 3.22.4 return 64-bit values for update counts
public int getMaxFieldSize() throws java.sql.SQLException
getMaxFieldSize
in interface java.sql.Statement
java.sql.SQLException
- if a database access error occurspublic int getMaxRows() throws java.sql.SQLException
getMaxRows
in interface java.sql.Statement
java.sql.SQLException
- if a database access error occurspublic boolean getMoreResults() throws java.sql.SQLException
getMoreResults
in interface java.sql.Statement
java.sql.SQLException
- if a database access error occurspublic boolean getMoreResults(int current) throws java.sql.SQLException
getMoreResults
in interface java.sql.Statement
java.sql.SQLException
getMoreResults(int)
public int getQueryTimeout() throws java.sql.SQLException
getQueryTimeout
in interface java.sql.Statement
java.sql.SQLException
- if a database access error occurspublic java.sql.ResultSet getResultSet() throws java.sql.SQLException
getResultSet
in interface java.sql.Statement
java.sql.SQLException
- if a database access error occurs (why?)public int getResultSetConcurrency() throws java.sql.SQLException
getResultSetConcurrency
in interface java.sql.Statement
java.sql.SQLException
- if an error occurspublic int getResultSetHoldability() throws java.sql.SQLException
getResultSetHoldability
in interface java.sql.Statement
java.sql.SQLException
getResultSetHoldability()
protected ResultSetInternalMethods getResultSetInternal()
public int getResultSetType() throws java.sql.SQLException
getResultSetType
in interface java.sql.Statement
java.sql.SQLException
- if an error occurs.public int getUpdateCount() throws java.sql.SQLException
getUpdateCount
in interface java.sql.Statement
java.sql.SQLException
- if a database access error occurspublic java.sql.SQLWarning getWarnings() throws java.sql.SQLException
The Warning chain is automatically cleared each time a statement is (re)executed.
Note: If you are processing a ResultSet then any warnings associated with ResultSet reads will be chained on the ResultSet object.
getWarnings
in interface java.sql.Statement
java.sql.SQLException
- if a database access error occursprotected void realClose(boolean calledExplicitly, boolean closeOpenResults) throws java.sql.SQLException
calledExplicitly
- was this called from close()?
java.sql.SQLException
- if an error occurspublic void setCursorName(java.lang.String name) throws java.sql.SQLException
Note: This MySQL driver does not support cursors.
setCursorName
in interface java.sql.Statement
name
- the new cursor name
java.sql.SQLException
- if a database access error occurspublic void setEscapeProcessing(boolean enable) throws java.sql.SQLException
setEscapeProcessing
in interface java.sql.Statement
enable
- true to enable; false to disable
java.sql.SQLException
- if a database access error occurspublic void setFetchDirection(int direction) throws java.sql.SQLException
setFetchDirection
in interface java.sql.Statement
direction
- the initial direction for processing rows
java.sql.SQLException
- if a database-access error occurs or direction is not one
of ResultSet.FETCH_FORWARD, ResultSet.FETCH_REVERSE, or
ResultSet.FETCH_UNKNOWNpublic void setFetchSize(int rows) throws java.sql.SQLException
setFetchSize
in interface java.sql.Statement
rows
- the number of rows to fetch
java.sql.SQLException
- if a database-access error occurs, or the condition 0
<= rows <= this.getMaxRows() is not satisfied.protected void setHoldResultsOpenOverClose(boolean holdResultsOpenOverClose)
public void setMaxFieldSize(int max) throws java.sql.SQLException
setMaxFieldSize
in interface java.sql.Statement
max
- the new max column size limit; zero means unlimited
java.sql.SQLException
- if size exceeds buffer sizepublic void setMaxRows(int max) throws java.sql.SQLException
setMaxRows
in interface java.sql.Statement
max
- the new max rows limit; zero means unlimited
java.sql.SQLException
- if a database access error occursgetMaxRows
public void setQueryTimeout(int seconds) throws java.sql.SQLException
setQueryTimeout
in interface java.sql.Statement
seconds
- -
the new query timeout limit in seconds
java.sql.SQLException
- if a database access error occursvoid setResultSetConcurrency(int concurrencyFlag)
concurrencyFlag
- DOCUMENT ME!void setResultSetType(int typeFlag)
typeFlag
- DOCUMENT ME!protected void getBatchedGeneratedKeys(java.sql.Statement batchedStatement) throws java.sql.SQLException
java.sql.SQLException
protected void getBatchedGeneratedKeys(int maxKeys) throws java.sql.SQLException
java.sql.SQLException
public boolean isClosed() throws java.sql.SQLException
isClosed
in interface java.sql.Statement
java.sql.SQLException
public boolean isPoolable() throws java.sql.SQLException
isPoolable
in interface java.sql.Statement
java.sql.SQLException
public void setPoolable(boolean poolable) throws java.sql.SQLException
setPoolable
in interface java.sql.Statement
java.sql.SQLException
public boolean isWrapperFor(java.lang.Class iface) throws java.sql.SQLException
isWrapperFor
on the wrapped
object. If this does not implement the interface and is not a wrapper, return false.
This method should be implemented as a low-cost operation compared to unwrap
so that
callers can use this method to avoid expensive unwrap
calls that may fail. If this method
returns true then calling unwrap
with the same argument should succeed.
isWrapperFor
in interface java.sql.Wrapper
interfaces
- a Class defining an interface.
java.sql.SQLException
- if an error occurs while determining whether this is a wrapper
for an object with the given interface.public java.lang.Object unwrap(java.lang.Class iface) throws java.sql.SQLException
unwrap
recursively on the wrapped object. If the receiver is not a
wrapper and does not implement the interface, then an SQLException
is thrown.
unwrap
in interface java.sql.Wrapper
iface
- A Class defining an interface that the result must implement.
java.sql.SQLException
- If no object found that implements the interfaceprotected int findStartOfStatement(java.lang.String sql)
public java.io.InputStream getLocalInfileInputStream()
Statement
public void setLocalInfileInputStream(java.io.InputStream stream)
Statement
public void setPingTarget(PingTarget pingTarget)
public ExceptionInterceptor getExceptionInterceptor()
protected boolean containsOnDuplicateKeyInString(java.lang.String sql)
protected int getOnDuplicateKeyLocation(java.lang.String sql)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |