## org.h2.command
Class Command

    java.lang.Object
      org.h2.command.Command

All Implemented Interfaces:
  CommandInterface

Direct Known Subclasses:
  CommandContainer

    public abstract class Command

extends java.lang.Object
implements CommandInterface

Represents a SQL statement. This object is only used on the server side.

Field Summary
`protected Session` `session` The session.
`protected long` `startTime` The last start time.

Fields inherited from interface org.h2.command.CommandInterface

`ALTER_INDEX_RENAME, ALTER_SCHEMA_RENAME, ALTER_SEQUENCE, ALTER_TABLE_ADD_COLUMN, ALTER_TABLE_ADD_CONSTRAINT_CHECK, ALTER_TABLE_ADD_CONSTRAINT_PRIMARY_KEY, ALTER_TABLE_ADD_CONSTRAINT_REFERENTIAL, ALTER_TABLE_ADD_CONSTRAINT_UNIQUE, ALTER_TABLE_ALTER_COLUMN_CHANGE_TYPE, ALTER_TABLE_ALTER_COLUMN_DEFAULT, ALTER_TABLE_ALTER_COLUMN_NOT_NULL, ALTER_TABLE_ALTER_COLUMN_NULL, ALTER_TABLE_ALTER_COLUMN_RENAME, ALTER_TABLE_ALTER_COLUMN_SELECTIVITY, ALTER_TABLE_DROP_COLUMN, ALTER_TABLE_DROP_CONSTRAINT, ALTER_TABLE_RENAME, ALTER_TABLE_SET_REFERENTIAL_INTEGRITY, ALTER_USER_ADMIN, ALTER_USER_RENAME, ALTER_USER_SET_PASSWORD, ALTER_VIEW, ANALYZE, BACKUP, BEGIN, CALL, CHECKPOINT, CHECKPOINT_SYNC, COMMENT, COMMIT, COMMIT_TRANSACTION, CREATE_AGGREGATE, CREATE_ALIAS, CREATE_CONSTANT, CREATE_DOMAIN, CREATE_INDEX, CREATE_LINKED_TABLE, CREATE_ROLE, CREATE_SCHEMA, CREATE_SEQUENCE, CREATE_TABLE, CREATE_TRIGGER, CREATE_USER, CREATE_VIEW, DEALLOCATE, DELETE, DROP_AGGREGATE, DROP_ALIAS, DROP_ALL_OBJECTS, DROP_CONSTANT, DROP_DOMAIN, DROP_INDEX, DROP_ROLE, DROP_SCHEMA, DROP_SEQUENCE, DROP_TABLE, DROP_TRIGGER, DROP_USER, DROP_VIEW, EXECUTE, EXPLAIN, GRANT, INSERT, MERGE, NO_OPERATION, PREPARE, PREPARE_COMMIT, REPLACE, REVOKE, ROLLBACK, ROLLBACK_TO_SAVEPOINT, ROLLBACK_TRANSACTION, RUNSCRIPT, SAVEPOINT, SCRIPT, SELECT, SET, SET_AUTOCOMMIT_FALSE, SET_AUTOCOMMIT_TRUE, SHUTDOWN, SHUTDOWN_COMPACT, SHUTDOWN_DEFRAG, SHUTDOWN_IMMEDIATELY, TRUNCATE_TABLE, UNKNOWN, UPDATE`

Method Summary
`void` `cancel()` Cancel the statement if it is still processing.
`boolean` `canReuse()` Whether the command is already closed (in which case it can be re-used).
`protected void` `checkCanceled()` Check if this command has been canceled, and throw an exception if yes.
`void` `close()` Close the statement.
`ResultInterface` `executeQuery(int maxrows, boolean scrollable)` Execute a query and return the result.
`int` `executeUpdate()` Execute the statement
`ResultInterface` `getMetaData()` Get an empty result set containing the meta data of the result.
`abstract java.util.ArrayList<? extends ParameterInterface>` `getParameters()` Get the list of parameters.
`boolean` `isCacheable()`
`abstract boolean` `isQuery()` Check if this command is a query.
`abstract boolean` `isReadOnly()` Check if this command is read only.
`abstract boolean` `isTransactional()` Check if this command is transactional.
`abstract void` `prepareJoinBatch()` Prepare join batching.
`ResultInterface` `query(int maxrows)` Execute a query statement, if this is possible.
`abstract ResultInterface` `queryMeta()` Get an empty result set containing the meta data.
`void` `reuse()` The command is now re-used, therefore reset the canReuse flag, and the parameter values.
`java.lang.String` `toString()`
`int` `update()` Execute an updating statement (for example insert, delete, or update), if this is possible.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.h2.command.CommandInterface
`getCommandType`

Field Detail

### session

    protected final Session session

  The session.

### startTime

    protected long startTime

  The last start time.

Method Detail

### isTransactional

    public abstract boolean isTransactional()

  Check if this command is transactional. If it is not, then it forces the current transaction to commit.

  Returns:
    true if it is

### isQuery

    public abstract boolean isQuery()

  Check if this command is a query.

  Specified by:
    `isQuery` in interface `CommandInterface`
  Returns:
    true if it is

### prepareJoinBatch

    public abstract void prepareJoinBatch()

  Prepare join batching.

### getParameters

    public abstract java.util.ArrayList<? extends ParameterInterface> getParameters()

  Get the list of parameters.

  Specified by:
    `getParameters` in interface `CommandInterface`
  Returns:
    the list of parameters

### isReadOnly

    public abstract boolean isReadOnly()

  Check if this command is read only.

  Returns:
    true if it is

### queryMeta

    public abstract ResultInterface queryMeta()

  Get an empty result set containing the meta data.

  Returns:
    an empty result set

### update

    public int update()

  Execute an updating statement (for example insert, delete, or update), if this is possible.

  Returns:
    the update count
  Throws:
    `DbException` - if the command is not an updating statement

### query

    public ResultInterface query(int maxrows)

  Execute a query statement, if this is possible.

  Parameters:
    `maxrows` - the maximum number of rows returned
  Returns:
    the local result set
  Throws:
    `DbException` - if the command is not a query

### getMetaData

    public final ResultInterface getMetaData()

  Description copied from interface: `CommandInterface`
  Get an empty result set containing the meta data of the result.

  Specified by:
    `getMetaData` in interface `CommandInterface`
  Returns:
    the empty result

### checkCanceled

    protected void checkCanceled()

  Check if this command has been canceled, and throw an exception if yes.

  Throws:
    `DbException` - if the statement has been canceled

### executeQuery

    public ResultInterface executeQuery(int maxrows,
                                        boolean scrollable)

  Execute a query and return the result. This method prepares everything and calls `query(int)` finally.

  Specified by:
    `executeQuery` in interface `CommandInterface`
  Parameters:
    `maxrows` - the maximum number of rows to return
    `scrollable` - if the result set must be scrollable (ignored)
  Returns:
    the result set

### executeUpdate

    public int executeUpdate()

  Description copied from interface: `CommandInterface`
  Execute the statement

  Specified by:
    `executeUpdate` in interface `CommandInterface`
  Returns:
    the update count

### close

    public void close()

  Description copied from interface: `CommandInterface`
  Close the statement.

  Specified by:
    `close` in interface `CommandInterface`

### cancel

    public void cancel()

  Description copied from interface: `CommandInterface`
  Cancel the statement if it is still processing.

  Specified by:
    `cancel` in interface `CommandInterface`

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

### isCacheable

    public boolean isCacheable()

### canReuse

    public boolean canReuse()

  Whether the command is already closed (in which case it can be re-used).

  Returns:
    true if it can be re-used

### reuse

    public void reuse()

  The command is now re-used, therefore reset the canReuse flag, and the parameter values.