Package com.microsoft.sqlserver.jdbc
Class SQLServerStatement
- java.lang.Object
-
- com.microsoft.sqlserver.jdbc.SQLServerStatement
-
- All Implemented Interfaces:
ISQLServerStatement
,Serializable
,AutoCloseable
,Statement
,Wrapper
- Direct Known Subclasses:
SQLServerPreparedStatement
public class SQLServerStatement extends Object implements ISQLServerStatement
Provides an implementation of java.sql.Statement JDBC Interface to assist in creating Statements against SQL Server. It also provides a number of base class implementation methods for the JDBC prepared statement and callable Statements. SQLServerStatement's basic role is to execute SQL statements and return update counts and resultset rows to the user application. Documentation for specific public methods that are undocumented can be found under Sun's standard JDBC documentation for class java.sql.Statement. Those methods are part of Sun's standard JDBC documentation and therefore their documentation is not duplicated here.Implementation Notes
Fetching Result sets
The queries first rowset is available immediately after the executeQuery. The first rs.next() does not make a server round trip. For non server side resultsets the entire result set is in the rowset. For server side result sets the number of rows in the rowset is set with nFetchSize
The API javadoc for JDBC API methods that this class implements are not repeated here. Please see Sun's JDBC API interfaces javadoc for those details.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
isSetByIndex
Checks if the prepared statement's parameters were set by indexprotected boolean
isSetByName
Checks if the callable statement's parameters are set by nameprotected SQLServerStatementColumnEncryptionSetting
stmtColumnEncriptionSetting
Column Encryption Override.-
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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addBatch(String sql)
void
cancel()
void
clearBatch()
void
clearWarnings()
void
close()
void
closeOnCompletion()
boolean
execute(String sql)
boolean
execute(String sql, int autoGeneratedKeys)
boolean
execute(String sql, int[] columnIndexes)
boolean
execute(String sql, String[] columnNames)
int[]
executeBatch()
Sends a batch of statements to the database.long[]
executeLargeBatch()
long
executeLargeUpdate(String sql)
long
executeLargeUpdate(String sql, int autoGeneratedKeys)
long
executeLargeUpdate(String sql, int[] columnIndexes)
long
executeLargeUpdate(String sql, String[] columnNames)
ResultSet
executeQuery(String sql)
int
executeUpdate(String sql)
int
executeUpdate(String sql, int autoGeneratedKeys)
int
executeUpdate(String sql, int[] columnIndexes)
int
executeUpdate(String sql, String[] columnNames)
int
getCancelQueryTimeout()
Returns thecancelQueryTimeout
property set on this SQLServerStatement object.Connection
getConnection()
Returns the statement's connection.int
getFetchDirection()
int
getFetchSize()
ResultSet
getGeneratedKeys()
long
getLargeMaxRows()
long
getLargeUpdateCount()
int
getMaxFieldSize()
int
getMaxRows()
boolean
getMoreResults()
Returns more results in the TDS stream.boolean
getMoreResults(int mode)
int
getQueryTimeout()
String
getResponseBuffering()
Returns the response buffering mode for this SQLServerStatement object.ResultSet
getResultSet()
int
getResultSetConcurrency()
int
getResultSetHoldability()
int
getResultSetType()
protected SQLServerStatementColumnEncryptionSetting
getStmtColumnEncriptionSetting()
Returns the statement column encryption encryption settingint
getUpdateCount()
SQLWarning
getWarnings()
boolean
isClosed()
boolean
isCloseOnCompletion()
boolean
isPoolable()
boolean
isWrapperFor(Class<?> iface)
void
registerColumnEncryptionKeyStoreProvidersOnStatement(Map<String,SQLServerColumnEncryptionKeyStoreProvider> clientKeyStoreProviders)
Registers statement-level key store providers, replacing all existing providers.void
setCancelQueryTimeout(int seconds)
Sets thecancelQueryTimeout
property on this SQLServerStatement object to cancelqueryTimeout
set onConnection
orStatement
level.void
setCursorName(String name)
void
setEscapeProcessing(boolean enable)
void
setFetchDirection(int nDir)
void
setFetchSize(int rows)
void
setLargeMaxRows(long max)
void
setMaxFieldSize(int max)
void
setMaxRows(int max)
void
setPoolable(boolean poolable)
void
setQueryTimeout(int seconds)
void
setResponseBuffering(String value)
Sets the response buffering mode for this SQLServerStatement object to case-insensitive String full or adaptive.String
toString()
Returns the statement's id for logging info<T> T
unwrap(Class<T> iface)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.sql.Statement
enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, isSimpleIdentifier
-
-
-
-
Field Detail
-
isSetByName
protected boolean isSetByName
Checks if the callable statement's parameters are set by name
-
isSetByIndex
protected boolean isSetByIndex
Checks if the prepared statement's parameters were set by index
-
stmtColumnEncriptionSetting
protected SQLServerStatementColumnEncryptionSetting stmtColumnEncriptionSetting
Column Encryption Override. Defaults to the connection setting, in which case it will be Enabled if columnEncryptionSetting = true in the connection setting, Disabled if false. This may also be used to set other behavior which overrides connection level setting.
-
-
Method Detail
-
getStmtColumnEncriptionSetting
protected SQLServerStatementColumnEncryptionSetting getStmtColumnEncriptionSetting()
Returns the statement column encryption encryption setting- Returns:
- stmtColumnEncriptionSetting
-
toString
public String toString()
Returns the statement's id for logging info
-
close
public void close() throws SQLServerException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceStatement
- Throws:
SQLServerException
-
closeOnCompletion
public void closeOnCompletion() throws SQLException
- Specified by:
closeOnCompletion
in interfaceStatement
- Throws:
SQLException
-
executeQuery
public ResultSet executeQuery(String sql) throws SQLServerException, SQLTimeoutException
- Specified by:
executeQuery
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
executeUpdate
public int executeUpdate(String sql) throws SQLServerException, SQLTimeoutException
- Specified by:
executeUpdate
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
executeLargeUpdate
public long executeLargeUpdate(String sql) throws SQLServerException, SQLTimeoutException
- Specified by:
executeLargeUpdate
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
execute
public boolean execute(String sql) throws SQLServerException, SQLTimeoutException
- Specified by:
execute
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
getMaxFieldSize
public final int getMaxFieldSize() throws SQLServerException
- Specified by:
getMaxFieldSize
in interfaceStatement
- Throws:
SQLServerException
-
setMaxFieldSize
public final void setMaxFieldSize(int max) throws SQLServerException
- Specified by:
setMaxFieldSize
in interfaceStatement
- Throws:
SQLServerException
-
getMaxRows
public final int getMaxRows() throws SQLServerException
- Specified by:
getMaxRows
in interfaceStatement
- Throws:
SQLServerException
-
getLargeMaxRows
public final long getLargeMaxRows() throws SQLServerException
- Specified by:
getLargeMaxRows
in interfaceStatement
- Throws:
SQLServerException
-
setMaxRows
public final void setMaxRows(int max) throws SQLServerException
- Specified by:
setMaxRows
in interfaceStatement
- Throws:
SQLServerException
-
setLargeMaxRows
public final void setLargeMaxRows(long max) throws SQLServerException
- Specified by:
setLargeMaxRows
in interfaceStatement
- Throws:
SQLServerException
-
setEscapeProcessing
public final void setEscapeProcessing(boolean enable) throws SQLServerException
- Specified by:
setEscapeProcessing
in interfaceStatement
- Throws:
SQLServerException
-
getQueryTimeout
public final int getQueryTimeout() throws SQLServerException
- Specified by:
getQueryTimeout
in interfaceStatement
- Throws:
SQLServerException
-
setQueryTimeout
public final void setQueryTimeout(int seconds) throws SQLServerException
- Specified by:
setQueryTimeout
in interfaceStatement
- Throws:
SQLServerException
-
getCancelQueryTimeout
public final int getCancelQueryTimeout() throws SQLServerException
Description copied from interface:ISQLServerStatement
Returns thecancelQueryTimeout
property set on this SQLServerStatement object.- Specified by:
getCancelQueryTimeout
in interfaceISQLServerStatement
- Returns:
- cancelQueryTimeout Time duration in seconds.
- Throws:
SQLServerException
- if any error occurs
-
setCancelQueryTimeout
public final void setCancelQueryTimeout(int seconds) throws SQLServerException
Description copied from interface:ISQLServerStatement
Sets thecancelQueryTimeout
property on this SQLServerStatement object to cancelqueryTimeout
set onConnection
orStatement
level.- Specified by:
setCancelQueryTimeout
in interfaceISQLServerStatement
- Parameters:
seconds
- Time duration in seconds.- Throws:
SQLServerException
- if any error occurs
-
cancel
public final void cancel() throws SQLServerException
- Specified by:
cancel
in interfaceStatement
- Throws:
SQLServerException
-
getWarnings
public final SQLWarning getWarnings() throws SQLServerException
- Specified by:
getWarnings
in interfaceStatement
- Throws:
SQLServerException
-
clearWarnings
public final void clearWarnings() throws SQLServerException
- Specified by:
clearWarnings
in interfaceStatement
- Throws:
SQLServerException
-
setCursorName
public final void setCursorName(String name) throws SQLServerException
- Specified by:
setCursorName
in interfaceStatement
- Throws:
SQLServerException
-
getResultSet
public final ResultSet getResultSet() throws SQLServerException
- Specified by:
getResultSet
in interfaceStatement
- Throws:
SQLServerException
-
getUpdateCount
public final int getUpdateCount() throws SQLServerException
- Specified by:
getUpdateCount
in interfaceStatement
- Throws:
SQLServerException
-
getLargeUpdateCount
public final long getLargeUpdateCount() throws SQLServerException
- Specified by:
getLargeUpdateCount
in interfaceStatement
- Throws:
SQLServerException
-
getMoreResults
public final boolean getMoreResults() throws SQLServerException
Returns more results in the TDS stream.- Specified by:
getMoreResults
in interfaceStatement
- Returns:
- true if the next result is a ResultSet object; false if it is an integer (indicating that it is an update count or there are no more results).
- Throws:
SQLServerException
-
setFetchDirection
public final void setFetchDirection(int nDir) throws SQLServerException
- Specified by:
setFetchDirection
in interfaceStatement
- Throws:
SQLServerException
-
getFetchDirection
public final int getFetchDirection() throws SQLServerException
- Specified by:
getFetchDirection
in interfaceStatement
- Throws:
SQLServerException
-
setFetchSize
public final void setFetchSize(int rows) throws SQLServerException
- Specified by:
setFetchSize
in interfaceStatement
- Throws:
SQLServerException
-
getFetchSize
public final int getFetchSize() throws SQLServerException
- Specified by:
getFetchSize
in interfaceStatement
- Throws:
SQLServerException
-
getResultSetConcurrency
public final int getResultSetConcurrency() throws SQLServerException
- Specified by:
getResultSetConcurrency
in interfaceStatement
- Throws:
SQLServerException
-
getResultSetType
public final int getResultSetType() throws SQLServerException
- Specified by:
getResultSetType
in interfaceStatement
- Throws:
SQLServerException
-
addBatch
public void addBatch(String sql) throws SQLServerException
- Specified by:
addBatch
in interfaceStatement
- Throws:
SQLServerException
-
clearBatch
public void clearBatch() throws SQLServerException
- Specified by:
clearBatch
in interfaceStatement
- Throws:
SQLServerException
-
executeBatch
public int[] executeBatch() throws SQLServerException, BatchUpdateException, SQLTimeoutException
Sends a batch of statements to the database.- Specified by:
executeBatch
in interfaceStatement
- Throws:
SQLServerException
BatchUpdateException
SQLTimeoutException
-
executeLargeBatch
public long[] executeLargeBatch() throws SQLServerException, BatchUpdateException, SQLTimeoutException
- Specified by:
executeLargeBatch
in interfaceStatement
- Throws:
SQLServerException
BatchUpdateException
SQLTimeoutException
-
getConnection
public final Connection getConnection() throws SQLServerException
Returns the statement's connection.- Specified by:
getConnection
in interfaceStatement
- Returns:
- the connection
- Throws:
SQLServerException
- when an error occurs
-
getResultSetHoldability
public final int getResultSetHoldability() throws SQLException
- Specified by:
getResultSetHoldability
in interfaceStatement
- Throws:
SQLException
-
execute
public final boolean execute(String sql, int autoGeneratedKeys) throws SQLServerException, SQLTimeoutException
- Specified by:
execute
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
execute
public final boolean execute(String sql, int[] columnIndexes) throws SQLServerException, SQLTimeoutException
- Specified by:
execute
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
execute
public final boolean execute(String sql, String[] columnNames) throws SQLServerException, SQLTimeoutException
- Specified by:
execute
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
executeUpdate
public final int executeUpdate(String sql, int autoGeneratedKeys) throws SQLServerException, SQLTimeoutException
- Specified by:
executeUpdate
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
executeLargeUpdate
public final long executeLargeUpdate(String sql, int autoGeneratedKeys) throws SQLServerException, SQLTimeoutException
- Specified by:
executeLargeUpdate
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
executeUpdate
public final int executeUpdate(String sql, int[] columnIndexes) throws SQLServerException, SQLTimeoutException
- Specified by:
executeUpdate
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
executeLargeUpdate
public final long executeLargeUpdate(String sql, int[] columnIndexes) throws SQLServerException, SQLTimeoutException
- Specified by:
executeLargeUpdate
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
executeUpdate
public final int executeUpdate(String sql, String[] columnNames) throws SQLServerException, SQLTimeoutException
- Specified by:
executeUpdate
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
executeLargeUpdate
public final long executeLargeUpdate(String sql, String[] columnNames) throws SQLServerException, SQLTimeoutException
- Specified by:
executeLargeUpdate
in interfaceStatement
- Throws:
SQLServerException
SQLTimeoutException
-
getGeneratedKeys
public final ResultSet getGeneratedKeys() throws SQLServerException
- Specified by:
getGeneratedKeys
in interfaceStatement
- Throws:
SQLServerException
-
getMoreResults
public final boolean getMoreResults(int mode) throws SQLException
- Specified by:
getMoreResults
in interfaceStatement
- Throws:
SQLException
-
isClosed
public boolean isClosed() throws SQLException
- Specified by:
isClosed
in interfaceStatement
- Throws:
SQLException
-
isCloseOnCompletion
public boolean isCloseOnCompletion() throws SQLException
- Specified by:
isCloseOnCompletion
in interfaceStatement
- Throws:
SQLException
-
isPoolable
public boolean isPoolable() throws SQLException
- Specified by:
isPoolable
in interfaceStatement
- Throws:
SQLException
-
setPoolable
public void setPoolable(boolean poolable) throws SQLException
- Specified by:
setPoolable
in interfaceStatement
- Throws:
SQLException
-
isWrapperFor
public boolean isWrapperFor(Class<?> iface) throws SQLException
- Specified by:
isWrapperFor
in interfaceWrapper
- Throws:
SQLException
-
unwrap
public <T> T unwrap(Class<T> iface) throws SQLException
- Specified by:
unwrap
in interfaceWrapper
- Throws:
SQLException
-
setResponseBuffering
public final void setResponseBuffering(String value) throws SQLServerException
Description copied from interface:ISQLServerStatement
Sets the response buffering mode for this SQLServerStatement object to case-insensitive String full or adaptive.Response buffering controls the driver's buffering of responses from SQL Server.
Possible values are:
"full" - Fully buffer the response at execution time.
"adaptive" - Data Pipe adaptive buffering
- Specified by:
setResponseBuffering
in interfaceISQLServerStatement
- Parameters:
value
- A String that contains the response buffering mode. The valid mode can be one of the following case-insensitive Strings: full or adaptive.- Throws:
SQLServerException
- If there are any errors in setting the response buffering mode.
-
getResponseBuffering
public final String getResponseBuffering() throws SQLServerException
Description copied from interface:ISQLServerStatement
Returns the response buffering mode for this SQLServerStatement object.- Specified by:
getResponseBuffering
in interfaceISQLServerStatement
- Returns:
- A String that contains a lower-case full or adaptive.
- Throws:
SQLServerException
- If there are any errors in retrieving the response buffering mode.
-
registerColumnEncryptionKeyStoreProvidersOnStatement
public void registerColumnEncryptionKeyStoreProvidersOnStatement(Map<String,SQLServerColumnEncryptionKeyStoreProvider> clientKeyStoreProviders) throws SQLServerException
Registers statement-level key store providers, replacing all existing providers.- Parameters:
clientKeyStoreProviders
- a map containing the store providers information.- Throws:
SQLServerException
- when an error occurs
-
-