Package SQLite.JDBC2z

Class JDBCStatement

java.lang.Object
SQLite.JDBC2z.JDBCStatement
All Implemented Interfaces:
AutoCloseable, Statement, Wrapper
Direct Known Subclasses:
JDBCPreparedStatement

public class JDBCStatement
extends Object
implements Statement
  • Field Details

  • Constructor Details

  • Method Details

    • setFetchSize

      public void setFetchSize​(int fetchSize) throws SQLException
      Description copied from interface: Statement
      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.
      Specified by:
      setFetchSize in interface Statement
      Parameters:
      fetchSize - 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.
    • getFetchSize

      public int getFetchSize() throws SQLException
      Description copied from interface: Statement
      Gets the default number of rows for a fetch for the ResultSet objects returned from this statement.
      Specified by:
      getFetchSize in interface Statement
      Returns:
      the default fetch size for ResultSets produced by this statement.
      Throws:
      SQLException - if an error occurs accessing the database.
    • getMaxRows

      public int getMaxRows() throws SQLException
      Description copied from interface: Statement
      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.
      Specified by:
      getMaxRows in interface Statement
      Returns:
      the current row limit, where 0 means that there is no limit.
      Throws:
      SQLException - if an error occurs accessing the database.
    • setMaxRows

      public void setMaxRows​(int max) throws SQLException
      Description copied from interface: Statement
      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.
      Specified by:
      setMaxRows in interface Statement
      Parameters:
      max - the maximum number of rows. 0 means "no limit".
      Throws:
      SQLException - if an error occurs accessing the database or if max < 0.
    • setFetchDirection

      public void setFetchDirection​(int fetchDirection) throws SQLException
      Description copied from interface: Statement
      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.
      Specified by:
      setFetchDirection in interface Statement
      Parameters:
      fetchDirection - which fetch direction to use. This parameter should be one of
      • ResultSet.FETCH_UNKNOWN
      • ResultSet.FETCH_FORWARD
      • ResultSet.FETCH_REVERSE
      Throws:
      SQLException - if there is an error while accessing the database or if the fetch direction is unrecognized.
    • getFetchDirection

      public int getFetchDirection() throws SQLException
      Description copied from interface: Statement
      Gets the default direction for fetching rows for ResultSets generated from this statement.
      Specified by:
      getFetchDirection in interface Statement
      Returns:
      the default fetch direction, one of:
      • ResultSet.FETCH_FORWARD
      • ResultSet.FETCH_REVERSE
      • ResultSet.FETCH_UNKNOWN
      Throws:
      SQLException - if an error occurs accessing the database.
    • getResultSetConcurrency

      public int getResultSetConcurrency() throws SQLException
      Description copied from interface: Statement
      Gets the concurrency setting for ResultSet objects generated by this statement.
      Specified by:
      getResultSetConcurrency in interface Statement
      Returns:
      ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE.
      Throws:
      SQLException - if an error occurs accessing the database.
    • getResultSetType

      public int getResultSetType() throws SQLException
      Description copied from interface: Statement
      Gets the ResultSet type setting for ResultSets derived from this statement.
      Specified by:
      getResultSetType in interface Statement
      Returns:
      ResultSet.TYPE_FORWARD_ONLY for a ResultSet where the cursor can only move forwards, 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.
    • setQueryTimeout

      public void setQueryTimeout​(int seconds) throws SQLException
      Description copied from interface: Statement
      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.
      Specified by:
      setQueryTimeout in interface Statement
      Parameters:
      seconds - timeout in seconds. 0 means no timeout ("wait forever")
      Throws:
      SQLException - if an error occurs accessing the database or if seconds < 0.
    • getQueryTimeout

      public int getQueryTimeout() throws SQLException
      Description copied from interface: Statement
      Gets the timeout value for the statement's execution time. The JDBC driver will wait up to this value for the execution to complete - after the limit is exceeded an SQL Exception is thrown.
      Specified by:
      getQueryTimeout in interface Statement
      Returns:
      the current query timeout value, where 0 indicates that there is no current timeout.
      Throws:
      SQLException - if an error occurs accessing the database.
    • getResultSet

      public ResultSet getResultSet() throws SQLException
      Description copied from interface: Statement
      Gets the current result. Should only be called once per result.
      Specified by:
      getResultSet in interface Statement
      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.
    • executeQuery

      public ResultSet executeQuery​(String sql) throws SQLException
      Description copied from interface: Statement
      Executes a supplied SQL statement. Returns a single ResultSet.
      Specified by:
      executeQuery in interface Statement
      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.
    • execute

      public boolean execute​(String sql) throws SQLException
      Description copied from interface: Statement
      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.

      Specified by:
      execute in interface Statement
      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.
    • cancel

      public void cancel() throws SQLException
      Description copied from interface: Statement
      Cancels this statement's 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 executed on another thread.
      Specified by:
      cancel in interface Statement
      Throws:
      SQLException - if an error occurs accessing the database.
    • clearWarnings

      public void clearWarnings() throws SQLException
      Description copied from interface: Statement
      Clears all SQLWarnings from this statement.
      Specified by:
      clearWarnings in interface Statement
      Throws:
      SQLException - if an error occurs accessing the database.
    • getConnection

      public Connection getConnection() throws SQLException
      Description copied from interface: Statement
      Gets the Connection object which created this statement.
      Specified by:
      getConnection in interface Statement
      Returns:
      the Connection through which this statement is transmitted to the database.
      Throws:
      SQLException - if an error occurs accessing the database.
    • addBatch

      public void addBatch​(String sql) throws SQLException
      Description copied from interface: Statement
      Adds a specified SQL command to the list of commands for this Statement.

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

      Specified by:
      addBatch in interface Statement
      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.
    • executeBatch

      public int[] executeBatch() throws SQLException
      Description copied from interface: Statement
      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, following the "all or nothing" principle. 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.

      Specified by:
      executeBatch in interface Statement
      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 (the number of rows in the database affected by the command) for that 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.
    • clearBatch

      public void clearBatch() throws SQLException
      Description copied from interface: Statement
      Clears the current list of SQL commands for this statement.
      Specified by:
      clearBatch in interface Statement
      Throws:
      SQLException - if an error occurs accessing the database or the database does not support batch updates.
    • close

      public void close() throws SQLException
      Description copied from interface: Statement
      Releases this statement's database and JDBC driver resources.

      Using this method to release these resources as soon as possible is strongly recommended.

      One should not rely on the resources being automatically released when finalized during garbage collection. Doing so can result in unpredictable behavior for the application.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Statement
      Throws:
      SQLException - if an error occurs accessing the database.
    • executeUpdate

      public int executeUpdate​(String sql) throws SQLException
      Description copied from interface: Statement
      Executes the supplied SQL statement. The statement may be an INSERT, UPDATE or DELETE statement or a statement which returns nothing.
      Specified by:
      executeUpdate in interface Statement
      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.
    • getMaxFieldSize

      public int getMaxFieldSize() throws SQLException
      Description copied from interface: Statement
      Gets the maximum number of bytes which can be returned as values from character and binary type columns 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.
      Specified by:
      getMaxFieldSize in interface Statement
      Returns:
      the current size limit, where 0 means that there is no limit.
      Throws:
      SQLException - if an error occurs accessing the database.
    • getMoreResults

      public boolean getMoreResults() throws SQLException
      Description copied from interface: Statement
      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.
      Specified by:
      getMoreResults in interface Statement
      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.
    • getUpdateCount

      public int getUpdateCount() throws SQLException
      Description copied from interface: Statement
      Gets an update count for the current result if it is not a ResultSet.
      Specified by:
      getUpdateCount in interface Statement
      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.
    • getWarnings

      public SQLWarning getWarnings() throws SQLException
      Description copied from interface: Statement
      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 of warnings is cleared each time the statement is executed.

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

      Specified by:
      getWarnings in interface Statement
      Returns:
      an SQLWarning, null if there are no warnings
      Throws:
      SQLException - if an error occurs accessing the database.
    • setCursorName

      public void setCursorName​(String name) throws SQLException
      Description copied from interface: Statement
      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 used 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.

      Specified by:
      setCursorName in interface Statement
      Parameters:
      name - the Cursor name as a string,
      Throws:
      SQLException - if an error occurs accessing the database.
    • setEscapeProcessing

      public void setEscapeProcessing​(boolean enable) throws SQLException
      Description copied from interface: Statement
      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.

      Specified by:
      setEscapeProcessing in interface Statement
      Parameters:
      enable - true to set escape processing mode on, false to turn it off.
      Throws:
      SQLException - if an error occurs accessing the database.
    • setMaxFieldSize

      public void setMaxFieldSize​(int max) throws SQLException
      Description copied from interface: Statement
      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.
      Specified by:
      setMaxFieldSize in interface Statement
      Parameters:
      max - the maximum field size in bytes. 0 means "no limit".
      Throws:
      SQLException - if an error occurs accessing the database or the max value is < 0.
    • getMoreResults

      public boolean getMoreResults​(int x) throws SQLException
      Description copied from interface: Statement
      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.
      Specified by:
      getMoreResults in interface Statement
      Parameters:
      x - 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.
    • getGeneratedKeys

      public ResultSet getGeneratedKeys() throws SQLException
      Description copied from interface: Statement
      Returns auto generated keys created by executing this statement.
      Specified by:
      getGeneratedKeys in interface Statement
      Returns:
      a ResultSet containing the auto generated keys - empty if no keys are generated by this statement.
      Throws:
      SQLException - if an error occurs accessing the database.
    • executeUpdate

      public int executeUpdate​(String sql, int autokeys) throws SQLException
      Description copied from interface: Statement
      Executes the supplied SQL statement. This method allows control of whether auto-generated Keys should be made available for retrieval.
      Specified by:
      executeUpdate in interface Statement
      Parameters:
      sql - an SQL statement to execute - an SQL INSERT, UPDATE, DELETE or a statement which does not return anything.
      autokeys - 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.
    • executeUpdate

      public int executeUpdate​(String sql, int[] colIndexes) throws SQLException
      Description copied from interface: Statement
      Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column indexes.
      Specified by:
      executeUpdate in interface Statement
      Parameters:
      sql - an SQL statement to execute - an SQL INSERT, UPDATE, DELETE or a statement which returns nothing
      colIndexes - 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.
    • executeUpdate

      public int executeUpdate​(String sql, String[] colIndexes) throws SQLException
      Description copied from interface: Statement
      Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column names.
      Specified by:
      executeUpdate in interface Statement
      Parameters:
      sql - an SQL statement to execute - an SQL INSERT, UPDATE, DELETE or a statement which returns nothing
      colIndexes - 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.
    • execute

      public boolean execute​(String sql, int autokeys) throws SQLException
      Description copied from interface: Statement
      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.

      Specified by:
      execute in interface Statement
      Parameters:
      sql - the SQL statement to execute.
      autokeys - 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.
    • execute

      public boolean execute​(String sql, int[] colIndexes) throws SQLException
      Description copied from interface: Statement
      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.

      Specified by:
      execute in interface Statement
      Parameters:
      sql - the SQL statement to execute.
      colIndexes - 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.
    • execute

      public boolean execute​(String sql, String[] colIndexes) throws SQLException
      Description copied from interface: Statement
      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.

      Specified by:
      execute in interface Statement
      Parameters:
      sql - the SQL statement to execute.
      colIndexes - 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.
    • getResultSetHoldability

      public int getResultSetHoldability() throws SQLException
      Description copied from interface: Statement
      Gets the cursor hold setting for ResultSet objects generated by this statement.
      Specified by:
      getResultSetHoldability in interface Statement
      Returns:
      ResultSet.HOLD_CURSORS_OVER_COMMIT or ResultSet.CLOSE_CURSORS_AT_COMMIT
      Throws:
      SQLException - if there is an error while accessing the database.
    • isClosed

      public boolean isClosed() throws SQLException
      Description copied from interface: Statement
      Returns true if this statement has been closed, false otherwise.
      Specified by:
      isClosed in interface Statement
      Throws:
      SQLException
    • setPoolable

      public void setPoolable​(boolean yes) throws SQLException
      Description copied from interface: Statement
      Hints whether this statement should be pooled. Defaults to false for Statement, but true for CallableStatement and PreparedStatement. Pool manager implementations may or may not honor this hint.
      Specified by:
      setPoolable in interface Statement
      Throws:
      SQLException
    • isPoolable

      public boolean isPoolable() throws SQLException
      Description copied from interface: Statement
      Returns true if this statement is poolable, false otherwise.
      Specified by:
      isPoolable in interface Statement
      Throws:
      SQLException
    • unwrap

      public <T> T unwrap​(Class<T> iface) throws SQLException
      Description copied from interface: Wrapper
      Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
      Specified by:
      unwrap in interface Wrapper
      Parameters:
      iface - - the class that defines the interface
      Returns:
      - an object that implements the interface
      Throws:
      SQLException - - if there is no object implementing the specific interface
    • isWrapperFor

      public boolean isWrapperFor​(Class iface) throws SQLException
      Description copied from interface: Wrapper
      If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
      Specified by:
      isWrapperFor in interface Wrapper
      Parameters:
      iface - - the class that defines the interface
      Returns:
      - true if the instance implements the interface
      Throws:
      SQLException - - when an error occurs when judges the object