Package oracle.nosql.driver.ops

## Class PrepareRequest

- java.lang.Object
- - oracle.nosql.driver.ops.Request
  - - oracle.nosql.driver.ops.PrepareRequest

-     public class PrepareRequest
      extends Request

  A request that encapsulates a query prepare call. Query preparation allows queries to be compiled (prepared) and reused, saving time and resources. Use of prepared queries vs direct execution of query strings is highly recommended.

  Prepared queries are implemented as `PreparedStatement` which supports bind variables in queries which can be used to more easily reuse a query by parameterization.

  See Also:
    `NoSQLHandle.prepare(oracle.nosql.driver.ops.PrepareRequest)`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PrepareRequest()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `getQueryPlan()` |
    `String` | `getStatement()` | Returns the query statement
    `int` | `getTimeout()` | Returns the timeout to use for the operation, in milliseconds.
    `PrepareRequest` | `setCompartment​(String compartment)` | Cloud service only.
    `PrepareRequest` | `setGetQueryPlan​(boolean v)` | Sets whether a printout of the query execution plan should be included in the `PrepareResult`.
    `PrepareRequest` | `setStatement​(String statement)` | Sets the query statement.
    `PrepareRequest` | `setTableName​(String tableName)` | Sets the table name for a query operation.
    `PrepareRequest` | `setTimeout​(int timeoutMs)` | Sets the request timeout value, in milliseconds.

    - ### Methods inherited from class oracle.nosql.driver.ops.Request

      `getCompartment, getReadRateLimiter, getRetryStats, getTableName, getWriteRateLimiter, setReadRateLimiter, setWriteRateLimiter`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PrepareRequest

          public PrepareRequest()

  - ### Method Detail

    - #### setCompartment

          public PrepareRequest setCompartment​(String compartment)

      Cloud service only.

      Sets the name or id of a compartment to be used for this operation.

      The compartment may be specified as either a name (or path for nested compartments) or as an id (OCID). A name (vs id) can only be used when authenticated using a specific user identity. It is not available if authenticated as an Instance Principal which can be done when calling the service from a compute instance in the Oracle Cloud Infrastructure. See `SignatureProvider.createWithInstancePrincipal()`

      Parameters:
        `compartment` - the name or id. If using a nested compartment, specify the full compartment path `compartmentA.compartmentB`, but exclude the name of the root compartment (tenant).
      Returns:
        this

    - #### getStatement

          public String getStatement()

      Returns the query statement
      Returns:
        the statement, or null if it has not been set

    - #### setStatement

          public PrepareRequest setStatement​(String statement)

      Sets the query statement.
      Parameters:
        `statement` - the query statement
      Returns:
        this

    - #### setTimeout

          public PrepareRequest setTimeout​(int timeoutMs)

      Sets the request timeout value, in milliseconds. This overrides any default value set in `NoSQLHandleConfig`. The value must be positive.
      Parameters:
        `timeoutMs` - the timeout value, in milliseconds
      Returns:
        this
      Throws:
        `IllegalArgumentException` - if the timeout value is less than or equal to 0

    - #### setGetQueryPlan

          public PrepareRequest setGetQueryPlan​(boolean v)

      Sets whether a printout of the query execution plan should be included in the `PrepareResult`.
      Parameters:
        `v` - true if a printout of the query execution plan should be included in the `PrepareResult`. False otherwise.
      Returns:
        this

    - #### getQueryPlan

          public boolean getQueryPlan()

      Returns:
        whether a prinout of the query execution plan should be include in the `PrepareResult`.

    - #### getTimeout

          public int getTimeout()

      Returns the timeout to use for the operation, in milliseconds. A value of 0 indicates that the timeout has not been set.
      Returns:
        the value

    - #### setTableName

          public PrepareRequest setTableName​(String tableName)

      Sets the table name for a query operation. This is used by rate limiting logic to manage internal rate limiters.
      Parameters:
        `tableName` - the name (or OCID) of the table
      Returns:
        this