Android
java.sql
public interface

java.sql.Statement

java.sql.Statement

Interface used for executing static SQL statements and returning their results. By default, an object implementing the Statement interface can returns results as ResultSets. For any given Statement object, only one ResultSet can be open at one time. A call to any of the execution methods of Statement will cause any previously created ResultSet object for that Statement to be closed implicitly.

To have multiple ResultSet objects open concurrently, multiple Statement objects must be used.

Known Indirect Subclasses

Summary

Constants

      Value  
int  CLOSE_ALL_RESULTS  Passing this constant to getMoreResults implies that all ResultSet objects previously kept open should be closed.  0x00000003 
int  CLOSE_CURRENT_RESULT  Passing this constant to getMoreResults implies that the current ResultSet object should be closed   0x00000001 
int  EXECUTE_FAILED  Indicates that an error was encountered during execution of a batch statement.  -3  0xfffffffd 
int  KEEP_CURRENT_RESULT  Passing this constant to getMoreResults implies that the current ResultSet object should not be closed.  0x00000002 
int  NO_GENERATED_KEYS  Indicates that generated keys should not be accessible for retrieval.  0x00000002 
int  RETURN_GENERATED_KEYS  Indicates that generated keys should be accessible for retrieval.  0x00000001 
int  SUCCESS_NO_INFO  Indicates that a batch statement was executed with a successful result, but a count of the number of rows it affected is unavailable.  -2  0xfffffffe 

Public Methods

          void  addBatch(String sql)
Adds a specified SQL commands to the list of commands for this Statement.
          void  cancel()
Cancels this Statement execution if both the database and the JDBC driver support aborting an SQL statement in flight.
          void  clearBatch()
Clears the current list of SQL commands for this Statement.
          void  clearWarnings()
Clears all SQLWarnings from this Statement.
          void  close()
Releases this Statement's database and JDBC driver resources.
          boolean  execute(String sql, String[] columnNames)
Executes the supplied SQL statement.
          boolean  execute(String sql)
Executes a supplied SQL statement.
          boolean  execute(String sql, int autoGeneratedKeys)
Executes a supplied SQL statement.
          boolean  execute(String sql, int[] columnIndexes)
Executes the supplied SQL statement.
          int[]  executeBatch()
Submits a batch of SQL commands to the database.
          ResultSet  executeQuery(String sql)
Executes a supplied SQL statement.
          int  executeUpdate(String sql, int[] columnIndexes)
Executes the supplied SQL statement.
          int  executeUpdate(String sql)
Executes the supplied SQL statement.
          int  executeUpdate(String sql, String[] columnNames)
Executes the supplied SQL statement.
          int  executeUpdate(String sql, int autoGeneratedKeys)
Executes the supplied SQL statement.
          Connection  getConnection()
Gets the Connection that produced this Statement.
          int  getFetchDirection()
Gets the default direction for fetching rows for ResultSets generated from this Statement.
          int  getFetchSize()
Gets the default number of rows for a fetch for the ResultSet objects returned from this Statement.
          ResultSet  getGeneratedKeys()
Returns auto generated keys created by executing this Statement.
          int  getMaxFieldSize()
Gets the maximum number of bytes which can be returned for values from Character and Binary values in a ResultSet derived from this Statement.
          int  getMaxRows()
Gets the maximum number of rows that a ResultSet can contain when produced from this Statement.
          boolean  getMoreResults(int current)
Moves to this Statement's next result.
          boolean  getMoreResults()
Moves to this Statement's next result.
          int  getQueryTimeout()
Gets the timeout value for Statement execution.
          ResultSet  getResultSet()
Gets the current result.
          int  getResultSetConcurrency()
Gets the concurrency setting for ResultSet objects generated by this Statement.
          int  getResultSetHoldability()
Gets the cursor hold setting for ResultSet objects generated by this Statement.
          int  getResultSetType()
Gets the ResultSet type setting for ResultSets derived from this Statement.
          int  getUpdateCount()
Gets an update count for the current result if it is not a ResultSet.
          SQLWarning  getWarnings()
Retrieves the first SQLWarning reported by calls on this Statement.
          void  setCursorName(String name)
Sets the SQL cursor name.
          void  setEscapeProcessing(boolean enable)
Sets Escape Processing mode.
          void  setFetchDirection(int direction)
Sets the fetch direction - a hint to the JDBC driver about the direction of processing of rows in ResultSets created by this Statement.
          void  setFetchSize(int rows)
Sets the fetch size.
          void  setMaxFieldSize(int max)
Sets the maximum number of bytes for ResultSet columns that contain character or binary values.
          void  setMaxRows(int max)
Sets the maximum number of rows that any ResultSet can contain.
          void  setQueryTimeout(int seconds)
Sets the timeout, in seconds, for queries - how long the driver will allow for completion of a Statement execution.

Details

Constants

public static final int CLOSE_ALL_RESULTS

Passing this constant to getMoreResults implies that all ResultSet objects previously kept open should be closed.
Constant Value: 3 (0x00000003)

public static final int CLOSE_CURRENT_RESULT

Passing this constant to getMoreResults implies that the current ResultSet object should be closed
Constant Value: 1 (0x00000001)

public static final int EXECUTE_FAILED

Indicates that an error was encountered during execution of a batch statement.
Constant Value: -3 (0xfffffffd)

public static final int KEEP_CURRENT_RESULT

Passing this constant to getMoreResults implies that the current ResultSet object should not be closed.
Constant Value: 2 (0x00000002)

public static final int NO_GENERATED_KEYS

Indicates that generated keys should not be accessible for retrieval.
Constant Value: 2 (0x00000002)

public static final int RETURN_GENERATED_KEYS

Indicates that generated keys should be accessible for retrieval.
Constant Value: 1 (0x00000001)

public static final int SUCCESS_NO_INFO

Indicates that a batch statement was executed with a successful result, but a count of the number of rows it affected is unavailable.
Constant Value: -2 (0xfffffffe)

Public Methods

public void addBatch(String sql)

Adds a specified SQL commands to the list of commands for this Statement.

The list of commands is executed by invoking the executeBatch method.

Parameters

sql the SQL command as a String. Typically an INSERT or UPDATE statement.

Throws

SQLException if an error occurs accessing the database or the database does not support batch updates

public void cancel()

Cancels this Statement execution if both the database and the JDBC driver support aborting an SQL statement in flight. This method can be used by one thread to stop a Statement that is being executed on another thread.

Throws

SQLException if an error occurs accessing the database

public void clearBatch()

Clears the current list of SQL commands for this Statement.

Throws

SQLException if an error occurs accessing the database or the database does not support batch updates

public void clearWarnings()

Clears all SQLWarnings from this Statement.

Throws

SQLException if an error occurs accessing the database

public void close()

Releases this Statement's database and JDBC driver resources.

Using this method to release these resources as soon as possible is strongly recommended. It is not a good idea to rely on these resources being released when the Statement object is finalized during garbage collection. Doing so can result in unpredictable performance characteristics for the application.

Throws

SQLException if an error occurs accessing the database

public boolean execute(String sql, String[] columnNames)

Executes the supplied SQL statement. This may return multiple ResultSets. This method allows retrieval of auto generated keys specified by the supplied array of column indexes, if the SQL statement is an INSERT statement.

Use the getResultSet or getUpdateCount methods to get the first result and getMoreResults to get any subsequent results.

Parameters

sql the SQL statement to execute
columnNames an array of column names in the inserted row which should be made available for retrieval via the getGeneratedKeys method.

Returns

  • true if the first result is a ResultSet, false if the first result is an update count or if there is no result

Throws

SQLException if an error occurs accessing the database

public boolean execute(String sql)

Executes a supplied SQL statement. This may return multiple ResultSets.

Use the getResultSet or getUpdateCount methods to get the first result and getMoreResults to get any subsequent results.

Parameters

sql the SQL statement to execute

Returns

  • true if the first result is a ResultSet, false if the first result is an update count or if there is no result

Throws

SQLException if an error occurs accessing the database

public boolean execute(String sql, int autoGeneratedKeys)

Executes a supplied SQL statement. This may return multiple ResultSets. This method allows control of whether auto-generated Keys should be made available for retrieval, if the SQL statement is an INSERT statement.

Use the getResultSet or getUpdateCount methods to get the first result and getMoreResults to get any subsequent results.

Parameters

sql the SQL statement to execute
autoGeneratedKeys a flag indicating whether to make auto generated keys available for retrieval. This parameter must be one of Statement.NO_GENERATED_KEYS or Statement.RETURN_GENERATED_KEYS

Returns

  • true if results exists and the first result is a ResultSet, false if the first result is an update count or if there is no result

Throws

SQLException if an error occurs accessing the database

public boolean execute(String sql, int[] columnIndexes)

Executes the supplied SQL statement. This may return multiple ResultSets. This method allows retrieval of auto generated keys specified by the supplied array of column indexes, if the SQL statement is an INSERT statement.

Use the getResultSet or getUpdateCount methods to get the first result and getMoreResults to get any subsequent results.

Parameters

sql the SQL statement to execute
columnIndexes an array of indexes of the columns in the inserted row which should be made available for retrieval via the getGeneratedKeys method.

Returns

  • true if the first result is a ResultSet, false if the first result is an update count or if there is no result

Throws

SQLException if an error occurs accessing the database

public int[] executeBatch()

Submits a batch of SQL commands to the database. Returns an array of update counts, if all the commands execute successfully.

If one of the commands in the batch fails, this method can throw a BatchUpdateException and the JDBC driver may or may not process the remaining commands. The JDBC driver must behave consistently with the underlying database, either always continuing or never continuing. If the driver continues processing, the array of results returned contains the same number of elements as there are commands in the batch, with a minimum of one of the elements having the EXECUTE_FAILED value.

Returns

  • an array of update counts, with one entry for each command in the batch. The elements are ordered according to the order in which the commands were added to the batch.

    1. If the value of an element is >=0, the corresponding command completed successfully and the value is the update count for that command, which is the number of rows in the database affected by the command.
    2. If the value is SUCCESS_NO_INFO, the command completed successfully but the number of rows affected is unknown.
    3. If the value is EXECUTE_FAILED, the command failed.

Throws

SQLException if an error occurs accessing the database

public ResultSet executeQuery(String sql)

Executes a supplied SQL statement. Returns a single ResultSet.

Parameters

sql an SQL statement to execute. Typically a SELECT statement

Returns

  • a ResultSet containing the data produced by the SQL statement. Never null.

Throws

SQLException if an error occurs accessing the database or if the statement produces anything other than a single ResultSet

public int executeUpdate(String sql, int[] columnIndexes)

Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column indexes.

Parameters

sql an SQL statement to execute - an SQL INSERT, UPDATE, DELETE or a statement which returns nothing
columnIndexes an array of indexes of the columns in the inserted row which should be made available for retrieval via the getGeneratedKeys method.

Returns

  • the count of updated rows, or 0 for a statement that returns nothing.

Throws

SQLException if an error occurs accessing the database or if the statement produces a ResultSet

public int executeUpdate(String sql)

Executes the supplied SQL statement. The statement may be an INSERT, UPDATE or DELETE statement or a statement which returns nothing.

Parameters

sql an SQL statement to execute - an SQL INSERT, UPDATE, DELETE or a statement which returns nothing

Returns

  • the count of updated rows, or 0 for a statement that returns nothing.

Throws

SQLException if an error occurs accessing the database or if the statement produces a ResultSet

public int executeUpdate(String sql, String[] columnNames)

Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column names.

Parameters

sql an SQL statement to execute - an SQL INSERT, UPDATE, DELETE or a statement which returns nothing
columnNames an array of column names in the inserted row which should be made available for retrieval via the getGeneratedKeys method.

Returns

  • the count of updated rows, or 0 for a statement that returns nothing.

Throws

SQLException if an error occurs accessing the database or if the statement produces a ResultSet

public int executeUpdate(String sql, int autoGeneratedKeys)

Executes the supplied SQL statement. This method allows control of whether auto-generated Keys should be made available for retrieval.

Parameters

sql an SQL statement to execute - an SQL INSERT, UPDATE, DELETE or a statement which does not return anything.
autoGeneratedKeys a flag that indicates whether to allow retrieval of auto generated keys. Parameter must be one of Statement.RETURN_GENERATED_KEYS or Statement.NO_GENERATED_KEYS

Returns

  • the number of updated rows, or 0 if the statement returns nothing.

Throws

SQLException if an error occurs accessing the database or if the statement produces a ResultSet

public Connection getConnection()

Gets the Connection that produced this Statement.

Returns

  • the Connection

Throws

SQLException if an error occurs accessing the database

public int getFetchDirection()

Gets the default direction for fetching rows for ResultSets generated from this Statement.

Returns

  • an integer describing the default fetch direction, one of: ResultSet.FETCH_FORWARD, ResultSet.FETCH_REVERSE, ResultSet.FETCH_UNKNOWN

Throws

SQLException if an error occurs accessing the database

public int getFetchSize()

Gets the default number of rows for a fetch for the ResultSet objects returned from this Statement.

Returns

  • the default fetch size for ResultSets produced by this Statement

Throws

SQLException if an error occurs accessing the database

public ResultSet getGeneratedKeys()

Returns auto generated keys created by executing this Statement.

Returns

  • a ResultSet containing the auto generated keys - empty if no keys were generated by the Statement

Throws

SQLException if an error occurs accessing the database

public int getMaxFieldSize()

Gets the maximum number of bytes which can be returned for values from Character and Binary values in a ResultSet derived from this Statement. This limit applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR types. Any data exceeding the maximum size is abandoned without announcement.

Returns

  • the current size limit, where 0 means that there is no limit

Throws

SQLException if an error occurs accessing the database

public int getMaxRows()

Gets the maximum number of rows that a ResultSet can contain when produced from this Statement. If the limit is exceeded, the excess rows are discarded silently.

Returns

  • the current row limit, where 0 means that there is no limit.

Throws

SQLException if an error occurs accessing the database

public boolean getMoreResults(int current)

Moves to this Statement's next result. Returns true if the next result is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are handled as indicated by a supplied Flag parameter.

Parameters

current a flag indicating what to do with existing ResultSets. This parameter must be one of Statement.CLOSE_ALL_RESULTS, Statement.CLOSE_CURRENT_RESULT or Statement.KEEP_CURRENT_RESULT.

Returns

  • true if the next result exists and is a ResultSet, false if the next result is not a ResultSet or if there are no more results. Note that if there is no more data, this method will return false and getUpdateCount will return -1.

Throws

SQLException if an error occurs accessing the database

public boolean getMoreResults()

Moves to this Statement's next result. Returns true if it is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are closed implicitly.

Returns

  • true if the next result is a ResultSet, false if the next result is not a ResultSet or if there are no more results. Note that if there is no more data, this method will return false and getUpdateCount will return -1.

Throws

SQLException if an error occurs accessing the database

public int getQueryTimeout()

Gets the timeout value for Statement execution. The JDBC driver will wait up to this value for the execution to complete - after the limit is exceeded an SQL Exception is thrown.

Returns

  • the current Query Timeout value, where 0 indicates that there is no current timeout.

Throws

SQLException if an error occurs accessing the database

public ResultSet getResultSet()

Gets the current result. Should only be called once per result.

Returns

  • the ResultSet for the current result. null if the result is an update count or if there are no more results.

Throws

SQLException if an error occurs accessing the database

public int getResultSetConcurrency()

Gets the concurrency setting for ResultSet objects generated by this Statement.

Returns

  • ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE

Throws

SQLException if an error occurs accessing the database

public int getResultSetHoldability()

Gets the cursor hold setting for ResultSet objects generated by this Statement.

Returns

  • ResultSet.HOLD_CURSORS_OVER_COMMIT or ResultSet.CLOSE_CURSORS_AT_COMMIT

Throws

SQLException if there is an error while accessing the database

public int getResultSetType()

Gets the ResultSet type setting for ResultSets derived from this Statement.

Returns

  • ResultSet.TYPE_FORWARD_ONLY for a ResultSet where the cursor can only move forward, ResultSet.TYPE_SCROLL_INSENSITIVE for a ResultSet which is Scrollable but is not sensitive to changes made by others, ResultSet.TYPE_SCROLL_SENSITIVE for a ResultSet which is Scrollable but is sensitive to changes made by others

Throws

SQLException if there is an error accessing the database

public int getUpdateCount()

Gets an update count for the current result if it is not a ResultSet.

Returns

  • the current result as an update count. -1 if the current result is a ResultSet or if there are no more results

Throws

SQLException if an error occurs accessing the database

public SQLWarning getWarnings()

Retrieves the first SQLWarning reported by calls on this Statement.

If there are multiple warnings, subsequent warnings are chained to the first one.

The chain or warnings is cleared each time the Statement is executed.

Warnings associated with reads from the ResultSet returned from executing a Statement will be attached to the ResultSet, not the Statement object.

Returns

  • an SQLWarning, null if there are no warnings

Throws

SQLException if an error occurs accessing the database

public void setCursorName(String name)

Sets the SQL cursor name. This name is used by subsequent Statement execute methods.

Cursor names must be unique within one Connection.

With the Cursor name set, it can then be utilized in SQL positioned update or delete statements to determine the current row in a ResultSet generated from this Statement. The positioned update or delete must be done with a different Statement than this one.

Parameters

name the Cursor name as a String,

Throws

SQLException if an error occurs accessing the database

public void setEscapeProcessing(boolean enable)

Sets Escape Processing mode.

If Escape Processing is on, the JDBC driver will do escape substitution on an SQL statement before sending it for execution. This does not apply to PreparedStatements since they are processed when created, before this method can be called.

Parameters

enable true to set escape processing mode on, false to turn it off.

Throws

SQLException if an error occurs accessing the database

public void setFetchDirection(int direction)

Sets the fetch direction - a hint to the JDBC driver about the direction of processing of rows in ResultSets created by this Statement. The default fetch direction is FETCH_FORWARD.

Parameters

direction which fetch direction to use. This parameter should be one of ResultSet.FETCH_UNKNOWN, ResultSet.FETCH_FORWARD or ResultSet.FETCH_REVERSE

Throws

SQLException if there is an error while accessing the database or if the fetch direction is unrecognized

public void setFetchSize(int rows)

Sets the fetch size. This is a hint to the JDBC driver about how many rows should be fetched from the database when more are required by application processing.

Parameters

rows the number of rows that should be fetched. 0 tells the driver to ignore the hint. Should be less than getMaxRows for this statement. Should not be negative.

Throws

SQLException if an error occurs accessing the database, or if the rows parameter is out of range.

public void setMaxFieldSize(int max)

Sets the maximum number of bytes for ResultSet columns that contain character or binary values. This applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR fields. Any data exceeding the maximum size is abandoned without announcement.

Parameters

max the maximum field size in bytes. O means "no limit".

Throws

SQLException if an error occurs accessing the database or the max value is <0.

public void setMaxRows(int max)

Sets the maximum number of rows that any ResultSet can contain. If the number of rows exceeds this value, the additional rows are silently discarded.

Parameters

max the maximum number of rows. 0 means "no limit".

Throws

SQLException if an error occurs accessing the database or if max <0.

public void setQueryTimeout(int seconds)

Sets the timeout, in seconds, for queries - how long the driver will allow for completion of a Statement execution. If the timeout is exceeded, the query will throw an SQLException.

Parameters

seconds timeout in seconds. 0 means no timeout ("wait forever")

Throws

SQLException if an error occurs accessing the database or if seconds <0.
Copyright 2007 Google Inc. Build 0.9_r1-98467 - 14 Aug 2008 18:56