Class FBStatement
- java.lang.Object
-
- org.firebirdsql.jdbc.FBStatement
-
- All Implemented Interfaces:
java.lang.AutoCloseable,java.sql.Statement,java.sql.Wrapper,FirebirdStatement
- Direct Known Subclasses:
FBPreparedStatement
public class FBStatement extends java.lang.Object implements FirebirdStatement
Implementation ofStatement.- Author:
- David Jencks, Mark Rotteveel
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classFBStatement.StatementResultThe current result of a statement.
-
Field Summary
Fields Modifier and Type Field Description protected booleancompletedprotected FBConnectionconnectionprotected FBStatement.StatementResultcurrentStatementResultprotected FbStatementfbStatementprotected intfetchSizeprotected java.sql.SQLWarningfirstWarningprotected GDSHelpergdsHelperprotected booleanisSingletonResultprotected intmaxRowsprotected java.util.List<RowValue>specialResultprotected FBObjectListener.StatementListenerstatementListener
-
Constructor Summary
Constructors Modifier Constructor Description protectedFBStatement(GDSHelper c, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddBatch(java.lang.String sql)protected voidaddWarning(java.sql.SQLWarning warning)voidcancel()protected voidcheckValidity()Check if this statement is valid.voidclearBatch()voidclearWarnings()voidclose()voidcloseOnCompletion()voidcompleteStatement()voidcompleteStatement(CompletionReason reason)protected java.sql.BatchUpdateExceptioncreateBatchUpdateException(java.lang.String reason, java.lang.String SQLState, int vendorCode, long[] updateCounts, java.lang.Throwable cause)protected FBResultSetcreateSpecialResultSet(FBObjectListener.ResultSetListener resultSetListener)Create the result set forspecialResult.protected StatementListenercreateStatementListener()Creates theStatementListenerto be associated with the instance ofFbStatementcreated for thisFBStatementor subclasses.java.lang.StringenquoteIdentifier(java.lang.String identifier, boolean alwaysQuote)Returns a SQL identifier.java.lang.StringenquoteLiteral(java.lang.String val)Returns aStringenclosed in single quotes.java.lang.StringenquoteNCharLiteral(java.lang.String val)booleanequals(java.lang.Object other)booleanexecute(java.lang.String sql)booleanexecute(java.lang.String sql, int autoGeneratedKeys)booleanexecute(java.lang.String sql, int[] columnIndexes)booleanexecute(java.lang.String sql, java.lang.String[] columnNames)int[]executeBatch()protected java.util.List<java.lang.Long>executeBatchInternal()protected booleanexecuteImpl(java.lang.String sql)Internal implementation ofexecute(String), so it can be used for normal queries and for queries returning generated keys.long[]executeLargeBatch()longexecuteLargeUpdate(java.lang.String sql)longexecuteLargeUpdate(java.lang.String sql, int autoGeneratedKeys)longexecuteLargeUpdate(java.lang.String sql, int[] columnIndexes)longexecuteLargeUpdate(java.lang.String sql, java.lang.String[] columnNames)java.sql.ResultSetexecuteQuery(java.lang.String sql)intexecuteUpdate(java.lang.String sql)intexecuteUpdate(java.lang.String sql, int autoGeneratedKeys)intexecuteUpdate(java.lang.String sql, int[] columnIndexes)intexecuteUpdate(java.lang.String sql, java.lang.String[] columnNames)java.sql.ConnectiongetConnection()java.sql.ResultSetgetCurrentResultSet()Get current result set.intgetDeletedRowsCount()Get number of deleted rows.intgetFetchDirection()intgetFetchSize()java.sql.ResultSetgetGeneratedKeys()intgetInsertedRowsCount()Get number of inserted rows.longgetLargeMaxRows()longgetLargeUpdateCount()protected longgetLargeUpdateCountMinZero()Equivalent ofgetLargeUpdateCount(), with a minimum value of zero.java.lang.StringgetLastExecutionPlan()Get execution plan for the last executed statement.java.lang.StringgetLastExplainedExecutionPlan()Get detailed execution plan for the last executed statement.intgetLocalStatementId()The local statement id is intended to identify the statement for internal implementation purposes.intgetMaxFieldSize()intgetMaxRows()booleangetMoreResults()booleangetMoreResults(int mode)intgetQueryTimeout()java.sql.ResultSetgetResultSet()java.sql.ResultSetgetResultSet(boolean metaDataQuery)intgetResultSetConcurrency()intgetResultSetHoldability()intgetResultSetType()intgetUpdateCount()protected intgetUpdateCountMinZero()Equivalent ofgetUpdateCount(), with a minimum value of zero.intgetUpdatedRowsCount()Get number of updated rows.java.sql.SQLWarninggetWarnings()inthashCode()booleanhasOpenResultSet()Check if this statement has open result set.protected booleaninternalExecute(java.lang.String sql)protected booleaninternalExecute(RowValue rowValue)booleanisClosed()booleanisCloseOnCompletion()protected booleanisGeneratedKeyQuery()booleanisPoolable()booleanisSimpleIdentifier(java.lang.String identifier)booleanisValid()Check if this statement is valid.booleanisWrapperFor(java.lang.Class<?> iface)protected java.lang.StringnativeSQL(java.lang.String sql)protected booleanneedsScrollableCursorEnabled()protected voidnotifyStatementCompleted()protected voidnotifyStatementCompleted(boolean success)protected voidnotifyStatementStarted()protected voidnotifyStatementStarted(boolean closeResultSet)protected voidprepareFixedStatement(java.lang.String sql)protected FbStatementrequireStatement()voidsetCursorName(java.lang.String name)voidsetEscapeProcessing(boolean enable)voidsetFetchDirection(int direction)voidsetFetchSize(int rows)voidsetLargeMaxRows(long max)voidsetMaxFieldSize(int max)voidsetMaxRows(int max)voidsetPoolable(boolean poolable)voidsetQueryTimeout(int seconds)<T> Tunwrap(java.lang.Class<T> iface)protected LockCloseablewithLock()
-
-
-
Field Detail
-
gdsHelper
protected final GDSHelper gdsHelper
-
statementListener
protected final FBObjectListener.StatementListener statementListener
-
fbStatement
protected FbStatement fbStatement
-
completed
protected boolean completed
-
firstWarning
protected java.sql.SQLWarning firstWarning
-
currentStatementResult
protected FBStatement.StatementResult currentStatementResult
-
isSingletonResult
protected boolean isSingletonResult
-
specialResult
protected final java.util.List<RowValue> specialResult
-
maxRows
protected int maxRows
-
fetchSize
protected int fetchSize
-
connection
protected final FBConnection connection
-
-
Constructor Detail
-
FBStatement
protected FBStatement(GDSHelper c, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
-
Method Detail
-
isValid
public boolean isValid()
Description copied from interface:FirebirdStatementCheck if this statement is valid.- Specified by:
isValidin interfaceFirebirdStatement- Returns:
trueif statement is valid and can be used to execute SQL.
-
withLock
protected final LockCloseable withLock()
- See Also:
FbAttachment.withLock()
-
completeStatement
public void completeStatement() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
completeStatement
public void completeStatement(CompletionReason reason) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
executeQuery
public java.sql.ResultSet executeQuery(java.lang.String sql) throws java.sql.SQLException- Specified by:
executeQueryin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
notifyStatementStarted
protected void notifyStatementStarted() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
notifyStatementStarted
protected void notifyStatementStarted(boolean closeResultSet) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
notifyStatementCompleted
protected void notifyStatementCompleted() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
notifyStatementCompleted
protected void notifyStatementCompleted(boolean success) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql) throws java.sql.SQLException- Specified by:
executeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
executeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
executeUpdatein 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:
executeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
executein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
executein 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:
executein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getGeneratedKeys
public java.sql.ResultSet getGeneratedKeys() throws java.sql.SQLException- Specified by:
getGeneratedKeysin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
close
public void close() throws java.sql.SQLException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
isClosed
public boolean isClosed()
- Specified by:
isClosedin interfacejava.sql.Statement
-
getMaxFieldSize
public int getMaxFieldSize() throws java.sql.SQLException- Specified by:
getMaxFieldSizein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setMaxFieldSize
public void setMaxFieldSize(int max) throws java.sql.SQLException- Specified by:
setMaxFieldSizein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getMaxRows
public int getMaxRows() throws java.sql.SQLException- Specified by:
getMaxRowsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setMaxRows
public void setMaxRows(int max) throws java.sql.SQLException- Specified by:
setMaxRowsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setEscapeProcessing
public void setEscapeProcessing(boolean enable) throws java.sql.SQLException- Specified by:
setEscapeProcessingin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getQueryTimeout
public int getQueryTimeout() throws java.sql.SQLExceptionFirebird 4 and higher also support attachment level and global statement timeouts. This method only reports the value explicitly configured for this statement. In practice, a more stringent timeout might be applied by this attachment level or global statement timeout.
- Specified by:
getQueryTimeoutin interfacejava.sql.Statement- Throws:
java.sql.SQLException- See Also:
setQueryTimeout(int)
-
setQueryTimeout
public void setQueryTimeout(int seconds) throws java.sql.SQLExceptionQuery timeout is only supported on Firebird 4 and higher, and only for the pure-java wire protocol implementation. For earlier versions or native/embedded connections, the timeout is ignored. The maximum timeout for Firebird 4 is 4294967 seconds, higher values will be handled as if 0 was set. Firebird 4 also has attachment level and global statement timeouts. This configuration governs the statement level statement timeout only. In practice, a more stringent timeout might be applied by this attachment level or global statement timeout.
Important: Query timeouts in Firebird 4 and higher have an important caveat: for result set producing statements, the timeout covers the time from execution start until the cursor is closed. This includes the time that Firebird waits for your application to fetch more rows. This means that if you execute a
SELECTand take your time processing the results, the statement may be cancelled even when Firebird itself returns rows quickly.A query timeout is not applied for execution of DDL.
- Specified by:
setQueryTimeoutin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
cancel
public void cancel() throws java.sql.SQLException- Specified by:
cancelin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getWarnings
public java.sql.SQLWarning getWarnings() throws java.sql.SQLException- Specified by:
getWarningsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
clearWarnings
public void clearWarnings() throws java.sql.SQLException- Specified by:
clearWarningsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setCursorName
public void setCursorName(java.lang.String name) throws java.sql.SQLException- Specified by:
setCursorNamein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
execute
public boolean execute(java.lang.String sql) throws java.sql.SQLException- Specified by:
executein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeImpl
protected boolean executeImpl(java.lang.String sql) throws java.sql.SQLExceptionInternal implementation ofexecute(String), so it can be used for normal queries and for queries returning generated keys.- Throws:
java.sql.SQLException- See Also:
execute(String)
-
getResultSet
public java.sql.ResultSet getResultSet() throws java.sql.SQLException- Specified by:
getResultSetin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getResultSet
public java.sql.ResultSet getResultSet(boolean metaDataQuery) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
createSpecialResultSet
protected FBResultSet createSpecialResultSet(FBObjectListener.ResultSetListener resultSetListener) throws java.sql.SQLException
Create the result set forspecialResult.Should only be called from
getResultSet(boolean). This exists becauseFBCallableStatementneeds to create the result set in a slightly different way to account for the fact that the blobs were already cached earlier.- Parameters:
resultSetListener- result set listener (can benull)- Returns:
- result set wrapping
specialResult - Throws:
java.sql.SQLException
-
hasOpenResultSet
public boolean hasOpenResultSet()
Description copied from interface:FirebirdStatementCheck if this statement has open result set. Note, this method works correctly if auto-commit is disabled. In auto-commit mode it will always returnfalsebecause from the statement's point of view result set is not open (in auto-commit mode complete result set is fetched and cached in wrapping object before returning from theStatement.getResultSet()method).- Specified by:
hasOpenResultSetin interfaceFirebirdStatement- Returns:
trueif there's already open result set associated with this statement, otherwisefalse.
-
getUpdateCountMinZero
protected final int getUpdateCountMinZero() throws java.sql.SQLExceptionEquivalent ofgetUpdateCount(), with a minimum value of zero.For use in
executeUpdatemethods as the API mandates0instead of-1for no results, and in (emulated)executeBatchmethods for consistency with server-side batch execution.- Throws:
java.sql.SQLException- See Also:
getLargeUpdateCountMinZero()
-
getUpdateCount
public int getUpdateCount() throws java.sql.SQLException- Specified by:
getUpdateCountin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getDeletedRowsCount
public int getDeletedRowsCount() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet number of deleted rows. You can call this method multiple times, it does not affect the JDBC result number.- Specified by:
getDeletedRowsCountin interfaceFirebirdStatement- Returns:
- number of deleted rows or -1 if current result is result set.
- Throws:
java.sql.SQLException- if database error occurs.
-
getInsertedRowsCount
public int getInsertedRowsCount() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet number of inserted rows. You can call this method multiple times, it does not affect the JDBC result number.- Specified by:
getInsertedRowsCountin interfaceFirebirdStatement- Returns:
- number of inserted rows or -1 if current result is result set.
- Throws:
java.sql.SQLException- if database error occurs.
-
getUpdatedRowsCount
public int getUpdatedRowsCount() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet number of updated rows. You can call this method multiple times, it does not affect the JDBC result number.- Specified by:
getUpdatedRowsCountin interfaceFirebirdStatement- Returns:
- number of updated rows or -1 if current result is result set.
- Throws:
java.sql.SQLException- if database error occurs.
-
getMoreResults
public boolean getMoreResults() throws java.sql.SQLException- Specified by:
getMoreResultsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getMoreResults
public boolean getMoreResults(int mode) throws java.sql.SQLException- Specified by:
getMoreResultsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setFetchDirection
public void setFetchDirection(int direction) throws java.sql.SQLException- Specified by:
setFetchDirectionin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getFetchDirection
public int getFetchDirection() throws java.sql.SQLException- Specified by:
getFetchDirectionin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setFetchSize
public void setFetchSize(int rows) throws java.sql.SQLException- Specified by:
setFetchSizein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getFetchSize
public int getFetchSize() throws java.sql.SQLException- Specified by:
getFetchSizein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getResultSetConcurrency
public int getResultSetConcurrency() throws java.sql.SQLException- Specified by:
getResultSetConcurrencyin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getResultSetType
public int getResultSetType() throws java.sql.SQLException- Specified by:
getResultSetTypein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getResultSetHoldability
public int getResultSetHoldability() throws java.sql.SQLException- Specified by:
getResultSetHoldabilityin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
addBatch
public void addBatch(java.lang.String sql) throws java.sql.SQLException- Specified by:
addBatchin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
clearBatch
public void clearBatch() throws java.sql.SQLException- Specified by:
clearBatchin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeBatch
public final int[] executeBatch() throws java.sql.SQLException- Specified by:
executeBatchin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeBatchInternal
protected java.util.List<java.lang.Long> executeBatchInternal() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
createBatchUpdateException
protected final java.sql.BatchUpdateException createBatchUpdateException(java.lang.String reason, java.lang.String SQLState, int vendorCode, long[] updateCounts, java.lang.Throwable cause)
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLException- Specified by:
getConnectionin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getCurrentResultSet
public java.sql.ResultSet getCurrentResultSet() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet current result set. Behaviour of this method is similar to the behavior of theStatement.getResultSet(), except that this method can be called as much as you like.- Specified by:
getCurrentResultSetin interfaceFirebirdStatement- Returns:
- instance of
ResultSetrepresenting current result set ornullif it is not available. - Throws:
java.sql.SQLException- if database access error happened.
-
isPoolable
public boolean isPoolable() throws java.sql.SQLException- Specified by:
isPoolablein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setPoolable
public void setPoolable(boolean poolable) throws java.sql.SQLException- Specified by:
setPoolablein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
isWrapperFor
public boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException- Specified by:
isWrapperForin interfacejava.sql.Wrapper- Throws:
java.sql.SQLException
-
unwrap
public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException- Specified by:
unwrapin interfacejava.sql.Wrapper- Throws:
java.sql.SQLException
-
closeOnCompletion
public void closeOnCompletion()
- Specified by:
closeOnCompletionin interfacejava.sql.Statement
-
isCloseOnCompletion
public boolean isCloseOnCompletion()
- Specified by:
isCloseOnCompletionin interfacejava.sql.Statement
-
internalExecute
protected boolean internalExecute(java.lang.String sql) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
internalExecute
protected boolean internalExecute(RowValue rowValue) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
prepareFixedStatement
protected void prepareFixedStatement(java.lang.String sql) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
requireStatement
protected FbStatement requireStatement() throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
needsScrollableCursorEnabled
protected boolean needsScrollableCursorEnabled()
-
addWarning
protected void addWarning(java.sql.SQLWarning warning)
-
nativeSQL
protected java.lang.String nativeSQL(java.lang.String sql) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
isGeneratedKeyQuery
protected boolean isGeneratedKeyQuery()
- Returns:
truewhen the current statement is expected to return generated keys,falseotherwise.
-
getLastExecutionPlan
public java.lang.String getLastExecutionPlan() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet execution plan for the last executed statement. Unlike theFirebirdPreparedStatement.getExecutionPlan(), this method can be called only after executing a query or update statement.- Specified by:
getLastExecutionPlanin interfaceFirebirdStatement- Returns:
- execution plan returned by the server.
- Throws:
java.sql.SQLException- if no statement was executed before calling this method, statement is not valid, or there was an error when obtaining the execution plan.
-
getLastExplainedExecutionPlan
public java.lang.String getLastExplainedExecutionPlan() throws java.sql.SQLExceptionDescription copied from interface:FirebirdStatementGet detailed execution plan for the last executed statement. More structured and comprehensible form. Can be called only after executing a query or update statement.- Specified by:
getLastExplainedExecutionPlanin interfaceFirebirdStatement- Returns:
- detailed execution plan returned by the server.
- Throws:
java.sql.SQLException- if no statement was executed before calling this method, statement is not valid, or there was an error when obtaining the execution plan.
-
checkValidity
protected void checkValidity() throws java.sql.SQLExceptionCheck if this statement is valid. This method should be invoked before executing any action which requires a valid connection.- Throws:
java.sql.SQLException- if this Statement has been closed and cannot be used anymore.
-
getLargeUpdateCountMinZero
protected final long getLargeUpdateCountMinZero() throws java.sql.SQLExceptionEquivalent ofgetLargeUpdateCount(), with a minimum value of zero.For use in
executeLargeUpdatemethods as the API mandates0instead of-1for no results, and in (emulated)executeBatchmethods for consistency with server-side batch execution.- Throws:
java.sql.SQLException- See Also:
getUpdateCountMinZero()
-
getLargeUpdateCount
public long getLargeUpdateCount() throws java.sql.SQLException- Specified by:
getLargeUpdateCountin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
setLargeMaxRows
public void setLargeMaxRows(long max) throws java.sql.SQLExceptionJaybird does not support maxRows exceeding
Integer.MAX_VALUE, if a larger value is set, Jaybird will add a warning to the statement and reset the maximum to 0.- Specified by:
setLargeMaxRowsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getLargeMaxRows
public long getLargeMaxRows() throws java.sql.SQLExceptionJaybird does not support maxRows exceeding
Integer.MAX_VALUE, the return value of this method is the same asgetMaxRows().- Specified by:
getLargeMaxRowsin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeLargeBatch
public final long[] executeLargeBatch() throws java.sql.SQLException- Specified by:
executeLargeBatchin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeLargeUpdate
public final long executeLargeUpdate(java.lang.String sql) throws java.sql.SQLException- Specified by:
executeLargeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeLargeUpdate
public final long executeLargeUpdate(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
executeLargeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeLargeUpdate
public final long executeLargeUpdate(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
executeLargeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
executeLargeUpdate
public final long executeLargeUpdate(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException- Specified by:
executeLargeUpdatein interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
enquoteLiteral
public java.lang.String enquoteLiteral(java.lang.String val) throws java.sql.SQLExceptionReturns aStringenclosed in single quotes. Any occurrence of a single quote within the string will be replaced by two single quotes.For a dialect 3 database, this will behave exactly like the JDBC 4.3 default implementation. For a dialect 1 database this will quote literals with double quotes and escape double quotes by doubling.
- Specified by:
enquoteLiteralin interfacejava.sql.Statement- Parameters:
val- a character string- Returns:
- A string enclosed by single quotes with every single quote converted to two single quotes
- Throws:
java.lang.NullPointerException- if val isnulljava.sql.SQLException- if a database access error occurs
-
enquoteNCharLiteral
public java.lang.String enquoteNCharLiteral(java.lang.String val) throws java.sql.SQLException- Specified by:
enquoteNCharLiteralin interfacejava.sql.Statement- Throws:
java.sql.SQLException- See Also:
enquoteLiteral(String)
-
enquoteIdentifier
public java.lang.String enquoteIdentifier(java.lang.String identifier, boolean alwaysQuote) throws java.sql.SQLExceptionReturns a SQL identifier. Ifidentifieris a simple SQL identifier:- Return the original value if
alwaysQuoteisfalse - Return a delimited identifier if
alwaysQuoteistrue
- Specified by:
enquoteIdentifierin interfacejava.sql.Statement- Parameters:
identifier- a SQL identifieralwaysQuote- indicates if a simple SQL identifier should be returned as a quoted identifier- Returns:
- A simple SQL identifier or a delimited identifier
- Throws:
java.sql.SQLException- if identifier is not a valid identifierjava.sql.SQLFeatureNotSupportedException- if the datasource does not support delimited identifiers (ie: a dialect 1 database)java.lang.NullPointerException- if identifier isnull
- Return the original value if
-
isSimpleIdentifier
public boolean isSimpleIdentifier(java.lang.String identifier) throws java.sql.SQLException- Specified by:
isSimpleIdentifierin interfacejava.sql.Statement- Throws:
java.sql.SQLException
-
getLocalStatementId
public final int getLocalStatementId()
Description copied from interface:FirebirdStatementThe local statement id is intended to identify the statement for internal implementation purposes.NOTE: This method is only included in this interface to try and avoid problems with proxied and bytecode enhanced classes in certain libraries, you should normally have no reason to call this method directly.
The id is expected - but not guaranteed - to be unique for a single connection, and - preferably - for the entire JVM run time as well.
- Specified by:
getLocalStatementIdin interfaceFirebirdStatement- Returns:
- The local statement id.
-
hashCode
public final int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public final boolean equals(java.lang.Object other)
- Overrides:
equalsin classjava.lang.Object
-
createStatementListener
protected StatementListener createStatementListener()
Creates theStatementListenerto be associated with the instance ofFbStatementcreated for thisFBStatementor subclasses.- Returns:
- instance of
StatementListener
-
-