Interface ReactiveConnection

  • All Known Implementing Classes:
    BatchingConnection, SqlClientConnection

    public interface ReactiveConnection
    Abstracts over reactive database connections, defining operations that allow queries to be executed asynchronously via CompletionStage.

    It is illegal to perform two non-blocking operations concurrently with a single ReactiveConnection. Instead, the second operation must be chained on completion of the first operation. This restriction might be relaxed in future, and is due to the implementation of the ProxyConnection returned by SqlClientPool.getProxyConnection().

    See Also:
    ReactiveConnectionPool
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.util.concurrent.CompletionStage<java.lang.Void> beginTransaction()  
      java.util.concurrent.CompletionStage<java.lang.Void> close()  
      java.util.concurrent.CompletionStage<java.lang.Void> commitTransaction()  
      java.util.concurrent.CompletionStage<java.lang.Void> execute​(java.lang.String sql)  
      java.util.concurrent.CompletionStage<java.lang.Void> executeBatch()  
      java.util.concurrent.CompletionStage<java.lang.Void> executeOutsideTransaction​(java.lang.String sql)  
      java.util.concurrent.CompletionStage<java.lang.Void> executeUnprepared​(java.lang.String sql)
      Run sql as statement (instead of preparedStatement)
      <T> java.util.concurrent.CompletionStage<T> insertAndSelectIdentifier​(java.lang.String sql, java.lang.Object[] paramValues, java.lang.Class<T> idClass, java.lang.String idColumnName)  
      java.util.concurrent.CompletionStage<java.lang.Void> rollbackTransaction()  
      java.util.concurrent.CompletionStage<ReactiveConnection.Result> select​(java.lang.String sql)  
      java.util.concurrent.CompletionStage<ReactiveConnection.Result> select​(java.lang.String sql, java.lang.Object[] paramValues)  
      <T> java.util.concurrent.CompletionStage<T> selectIdentifier​(java.lang.String sql, java.lang.Object[] paramValues, java.lang.Class<T> idClass)  
      java.util.concurrent.CompletionStage<java.sql.ResultSet> selectJdbc​(java.lang.String sql, java.lang.Object[] paramValues)  
      java.util.concurrent.CompletionStage<java.sql.ResultSet> selectJdbcOutsideTransaction​(java.lang.String sql, java.lang.Object[] paramValues)
      This method is intended to be used only for queries returning a ResultSet that must be executed outside of any "current" transaction (i.e with autocommit=true).
      java.util.concurrent.CompletionStage<java.lang.Integer> update​(java.lang.String sql)  
      java.util.concurrent.CompletionStage<java.lang.Integer> update​(java.lang.String sql, java.lang.Object[] paramValues)  
      java.util.concurrent.CompletionStage<java.lang.Void> update​(java.lang.String sql, java.lang.Object[] paramValues, boolean allowBatching, ReactiveConnection.Expectation expectation)  
      java.util.concurrent.CompletionStage<int[]> update​(java.lang.String sql, java.util.List<java.lang.Object[]> paramValues)  
      ReactiveConnection withBatchSize​(int batchSize)  
    • Method Detail

      • execute

        java.util.concurrent.CompletionStage<java.lang.Void> execute​(java.lang.String sql)
      • executeOutsideTransaction

        java.util.concurrent.CompletionStage<java.lang.Void> executeOutsideTransaction​(java.lang.String sql)
      • executeUnprepared

        java.util.concurrent.CompletionStage<java.lang.Void> executeUnprepared​(java.lang.String sql)
        Run sql as statement (instead of preparedStatement)
      • update

        java.util.concurrent.CompletionStage<java.lang.Integer> update​(java.lang.String sql)
      • update

        java.util.concurrent.CompletionStage<java.lang.Integer> update​(java.lang.String sql,
                                                                       java.lang.Object[] paramValues)
      • update

        java.util.concurrent.CompletionStage<java.lang.Void> update​(java.lang.String sql,
                                                                    java.lang.Object[] paramValues,
                                                                    boolean allowBatching,
                                                                    ReactiveConnection.Expectation expectation)
      • update

        java.util.concurrent.CompletionStage<int[]> update​(java.lang.String sql,
                                                           java.util.List<java.lang.Object[]> paramValues)
      • select

        java.util.concurrent.CompletionStage<ReactiveConnection.Result> select​(java.lang.String sql,
                                                                               java.lang.Object[] paramValues)
      • selectJdbc

        java.util.concurrent.CompletionStage<java.sql.ResultSet> selectJdbc​(java.lang.String sql,
                                                                            java.lang.Object[] paramValues)
      • selectJdbcOutsideTransaction

        java.util.concurrent.CompletionStage<java.sql.ResultSet> selectJdbcOutsideTransaction​(java.lang.String sql,
                                                                                              java.lang.Object[] paramValues)
        This method is intended to be used only for queries returning a ResultSet that must be executed outside of any "current" transaction (i.e with autocommit=true).

        For example, it would be appropriate to use this method when performing queries on information_schema or system tables in order to obtain metadata information about catalogs, schemas, tables, etc.

        Parameters:
        sql - - the query to execute outside of a transaction
        paramValues - - a non-null array of parameter values
        Returns:
        the CompletionStage from executing the query.
      • insertAndSelectIdentifier

        <T> java.util.concurrent.CompletionStage<T> insertAndSelectIdentifier​(java.lang.String sql,
                                                                              java.lang.Object[] paramValues,
                                                                              java.lang.Class<T> idClass,
                                                                              java.lang.String idColumnName)
      • selectIdentifier

        <T> java.util.concurrent.CompletionStage<T> selectIdentifier​(java.lang.String sql,
                                                                     java.lang.Object[] paramValues,
                                                                     java.lang.Class<T> idClass)
      • beginTransaction

        java.util.concurrent.CompletionStage<java.lang.Void> beginTransaction()
      • commitTransaction

        java.util.concurrent.CompletionStage<java.lang.Void> commitTransaction()
      • rollbackTransaction

        java.util.concurrent.CompletionStage<java.lang.Void> rollbackTransaction()
      • executeBatch

        java.util.concurrent.CompletionStage<java.lang.Void> executeBatch()
      • close

        java.util.concurrent.CompletionStage<java.lang.Void> close()