## org.h2.command
Class Prepared

    java.lang.Object
      org.h2.command.Prepared

Direct Known Subclasses:
  BackupCommand, Call, DefineCommand, Delete, ExecuteProcedure, ExplainPlan, Insert, Merge, NoOperation, Query, ScriptBase, Set, TransactionCommand, Update

    public abstract class Prepared

extends java.lang.Object

A prepared statement.

Field Summary
`protected boolean` `create` Whether to create a new object (for indexes).
`protected java.util.ArrayList<Parameter>` `parameters` The list of parameters.
`protected boolean` `prepareAlways` If the query should be prepared before each execution.
`protected Session` `session` The session.
`protected java.lang.String` `sqlStatement` The SQL string.

Constructor Summary
`Prepared(Session session)` Create a new object.

Method Summary
`void` `checkCanceled()` Check if this statement was canceled.
`protected void` `checkParameters()` Check if all parameters have been set.
`protected int` `getCurrentObjectId()` Get the object id to use for the database object that is created in this statement.
`int` `getCurrentRowNumber()` Get the current row number.
`protected int` `getObjectId()` Get the current object id, or get a new id from the database.
`java.util.ArrayList<Parameter>` `getParameters()` Get the parameter list.
`java.lang.String` `getPlanSQL()` Get the SQL statement with the execution plan.
`java.lang.String` `getSQL()` Get the SQL statement.
`protected java.lang.String` `getSQL(Expression[] list)` Get the SQL snippet of the expression list.
`protected java.lang.String` `getSQL(Value[] values)` Get the SQL snippet of the value list.
`boolean` `isQuery()` Check if this object is a query.
`boolean` `isReadOnly()` Check if this command is read only.
`abstract boolean` `isTransactional()` Check if this command is transactional.
`boolean` `needRecompile()` Check if the statement needs to be re-compiled.
`void` `prepare()` Prepare this statement.
`ResultInterface` `query(int maxrows)` Execute the query.
`abstract ResultInterface` `queryMeta()` Get an empty result set containing the meta data.
`void` `setCommand(Command command)` Set the command.
`protected void` `setCurrentRowNumber(int rowNumber)` Set the current row number.
`void` `setObjectId(int i)` Set the object id for this statement.
`void` `setParameterList(java.util.ArrayList<Parameter> parameters)` Set the parameter list of this statement.
`void` `setPrepareAlways(boolean prepareAlways)` Set the prepare always flag.
`protected DbException` `setRow(DbException e, int rowId, java.lang.String values)` Set the SQL statement of the exception to the given row.
`void` `setSession(Session currentSession)` Set the session for this statement.
`void` `setSQL(java.lang.String sql)` Set the SQL statement.
`java.lang.String` `toString()` Convert the statement to a String.
`int` `update()` Execute the statement.

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

Field Detail

### session

    protected Session session

  The session.

### sqlStatement

    protected java.lang.String sqlStatement

  The SQL string.

### create

    protected boolean create

  Whether to create a new object (for indexes).

### parameters

    protected java.util.ArrayList<Parameter> parameters

  The list of parameters.

### prepareAlways

    protected boolean prepareAlways

  If the query should be prepared before each execution. This is set for queries with LIKE ?, because the query plan depends on the parameter value.

Constructor Detail

### Prepared

    public Prepared(Session session)

  Create a new object.

  Parameters:
    `session` - the session

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

### queryMeta

    public abstract ResultInterface queryMeta()

  Get an empty result set containing the meta data.

  Returns:
    the result set

### isReadOnly

    public boolean isReadOnly()

  Check if this command is read only.

  Returns:
    true if it is

### needRecompile

    public boolean needRecompile()

  Check if the statement needs to be re-compiled.

  Returns:
    true if it must

### setParameterList

    public void setParameterList(java.util.ArrayList<Parameter> parameters)

  Set the parameter list of this statement.

  Parameters:
    `parameters` - the parameter list

### getParameters

    public java.util.ArrayList<Parameter> getParameters()

  Get the parameter list.

  Returns:
    the parameter list

### checkParameters

    protected void checkParameters()

  Check if all parameters have been set.

  Throws:
    `SQLException` - if any parameter has not been set

### setCommand

    public void setCommand(Command command)

  Set the command.

  Parameters:
    `command` - the new command

### isQuery

    public boolean isQuery()

  Check if this object is a query.

  Returns:
    true if it is

### prepare

    public void prepare()

  Prepare this statement.

  Throws:
    `SQLException`

### update

    public int update()

  Execute the statement.

  Returns:
    the update count
  Throws:
    `SQLException` - if it is a query

### query

    public ResultInterface query(int maxrows)

  Execute the query.

  Parameters:
    `maxrows` - the maximum number of rows to return
  Returns:
    the result set
  Throws:
    `SQLException` - if it is not a query

### setSQL

    public void setSQL(java.lang.String sql)

  Set the SQL statement.

  Parameters:
    `sql` - the SQL statement

### getSQL

    public java.lang.String getSQL()

  Get the SQL statement.

  Returns:
    the SQL statement

### getCurrentObjectId

    protected int getCurrentObjectId()

  Get the object id to use for the database object that is created in this statement. This id is only set when the object is persistent. If not set, this method returns 0.

  Returns:
    the object id or 0 if not set

### getObjectId

    protected int getObjectId()

  Get the current object id, or get a new id from the database. The object id is used when creating new database object (CREATE statement).

  Returns:
    the object id

### getPlanSQL

    public java.lang.String getPlanSQL()

  Get the SQL statement with the execution plan.

  Returns:
    the execution plan

### checkCanceled

    public void checkCanceled()

  Check if this statement was canceled.

  Throws:
    `SQLException` - if it was canceled

### setObjectId

    public void setObjectId(int i)

  Set the object id for this statement.

  Parameters:
    `i` - the object id

### setSession

    public void setSession(Session currentSession)

  Set the session for this statement.

  Parameters:
    `currentSession` - the new session

### setPrepareAlways

    public void setPrepareAlways(boolean prepareAlways)

  Set the prepare always flag. If set, the statement is re-compiled whenever it is executed.

  Parameters:
    `prepareAlways` - the new value

### setCurrentRowNumber

    protected void setCurrentRowNumber(int rowNumber)

  Set the current row number.

  Parameters:
    `rowNumber` - the row number

### getCurrentRowNumber

    public int getCurrentRowNumber()

  Get the current row number.

  Returns:
    the row number

### toString

    public java.lang.String toString()

  Convert the statement to a String.

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    the SQL statement

### getSQL

    protected java.lang.String getSQL(Value[] values)

  Get the SQL snippet of the value list.

  Parameters:
    `values` - the value list
  Returns:
    the SQL snippet

### getSQL

    protected java.lang.String getSQL(Expression[] list)

  Get the SQL snippet of the expression list.

  Parameters:
    `list` - the expression list
  Returns:
    the SQL snippet

### setRow

    protected DbException setRow(DbException e,
                                 int rowId,
                                 java.lang.String values)

  Set the SQL statement of the exception to the given row.

  Parameters:
    `e` - the exception
    `rowId` - the row number
    `values` - the values of the row
  Returns:
    the exception