介面 AdbcStatement

所有父介面
AdbcOptions, AutoCloseable
所有已知實作類別
FlightSqlStatement, JdbcStatement

public interface AdbcStatement extends AutoCloseable, AdbcOptions
用於封裝執行資料庫查詢所需的所有狀態的容器,例如查詢本身、預備語句的參數、驅動程式參數等。

語句可能代表查詢或預備語句。

語句可能會被多次使用,並且可以重新配置(例如,它們可以重複使用以執行多個不同的查詢)。但是,執行語句(和變更某些其他狀態)將會使在該執行之前取得的結果集失效。

可以從單一連線建立多個語句。但是,如果同時使用它們(無論是從單一執行緒還是多個執行緒),驅動程式可能會封鎖或發生錯誤。

語句不一定需要是執行緒安全的,但是只要用戶端注意序列化對語句的存取,就可以從多個執行緒使用它們。

  • 方法詳細資訊

    • cancel

      default void cancel() throws AdbcException
      取消查詢的執行。

      這可以用於中斷方法的執行,例如 executeQuery()

      此方法必須是執行緒安全的(其他方法不一定是執行緒安全的)。

      拋出
      AdbcException
      始於
      ADBC API 修訂版本 1.1.0
    • setOption

      default void setOption(String key, Object value) throws AdbcException
      已過時。
      設定通用查詢選項。
      拋出
      AdbcException
    • setSqlQuery

      default void setSqlQuery(String query) throws AdbcException
      設定要在此語句上執行的 SQL 查詢。
      參數
      query - SQL 查詢。
      拋出
      AdbcException
    • setSubstraitPlan

      default void setSubstraitPlan(ByteBuffer plan) throws AdbcException
      設定要在此語句上執行的 Substrait 計畫。
      參數
      plan - 序列化的 Substrait 計畫。
      拋出
      AdbcException
    • bind

      default void bind(VectorSchemaRoot root) throws AdbcException
      將此語句繫結到 VectorSchemaRoot 以提供參數值/大量資料擷取。
      拋出
      AdbcException
    • executeQuery

      執行產生結果集的查詢並取得結果。

      這可能會使任何先前的結果集失效。

      拋出
      AdbcException
    • executeUpdate

      執行查詢。

      這可能會使任何先前的結果集失效。

      拋出
      AdbcException
    • executePartitioned

      default AdbcStatement.PartitionResult executePartitioned() throws AdbcException
      執行產生結果集的查詢,並取得結果集的分區列表。

      這些可以被序列化和反序列化,以用於平行和/或分散式擷取。

      這可能會使任何先前的結果集失效。

      拋出
      AdbcException
    • executeSchema

      default Schema executeSchema() throws AdbcException
      取得結果集的綱要,而無需執行查詢。
      拋出
      AdbcException
      始於
      ADBC API 修訂版本 1.1.0
    • pollPartitioned

      default Iterator<AdbcStatement.PartitionResult> pollPartitioned() throws AdbcException
      執行產生結果集的查詢,並取得結果集的分區列表。

      這些可以被序列化和反序列化,以用於平行和/或分散式擷取。

      這可能會使任何先前的結果集失效。

      拋出
      AdbcException
      始於
      ADBC API 修訂版本 1.1.0
    • getProgress

      default double getProgress() throws AdbcException
      取得查詢執行的進度。
      拋出
      AdbcException
      始於
      ADBC API 修訂版本 1.1.0
    • getMaxProgress

      default double getMaxProgress() throws AdbcException
      取得進度的上限。
      拋出
      AdbcException
      始於
      ADBC API 修訂版本 1.1.0
    • getParameterSchema

      default Schema getParameterSchema() throws AdbcException
      取得繫結參數的綱要。

      這會檢索一個 Arrow 綱要,描述參數化語句中參數的數量、名稱和類型。綱要的欄位應按照參數的序數位置排列;具名參數應僅出現一次。

      如果參數沒有名稱,或者無法確定名稱,則綱要中相應欄位的名稱將為空字串。如果無法確定類型,則相應欄位的類型將為 NA (NullType)。

      這應該在 AdbcStatementPrepare 之後呼叫。

      拋出
      AdbcException - 如果完全無法確定參數,則會拋出 AdbcStatusCode.NOT_IMPLEMENTED
    • prepare

      void prepare() throws AdbcException
      將此語句轉換為預備語句。

      呼叫 executeQuery()executeUpdate()executePartitioned() 以執行查詢。

      拋出
      AdbcException