Class AbstractMultiSend


  • public abstract class AbstractMultiSend
    extends java.lang.Object
    • Field Detail

      • protocol

        private final Protocol protocol
      • results

        private final Results results
      • binaryProtocol

        private final boolean binaryProtocol
      • readPrepareStmtResult

        private final boolean readPrepareStmtResult
      • statementId

        protected int statementId
      • parameterTypeHeader

        protected ColumnType[] parameterTypeHeader
      • queries

        private java.util.List<java.lang.String> queries
      • sql

        private java.lang.String sql
      • readScheduler

        private java.util.concurrent.ThreadPoolExecutor readScheduler
    • Constructor Detail

      • AbstractMultiSend

        public AbstractMultiSend​(Protocol protocol,
                                 PacketOutputStream writer,
                                 Results results,
                                 ServerPrepareResult serverPrepareResult,
                                 java.util.List<ParameterHolder[]> parametersList,
                                 boolean readPrepareStmtResult,
                                 java.lang.String sql,
                                 java.util.concurrent.ThreadPoolExecutor readScheduler)
        Bulk execute for Server PreparedStatement.executeBatch (when no COM_MULTI)
        Parameters:
        protocol - protocol
        writer - outputStream
        results - query results
        serverPrepareResult - Prepare result
        parametersList - parameters
        readPrepareStmtResult - must execute prepare result
        sql - sql query.
        readScheduler - reading thread-pool
      • AbstractMultiSend

        public AbstractMultiSend​(Protocol protocol,
                                 PacketOutputStream writer,
                                 Results results,
                                 ClientPrepareResult clientPrepareResult,
                                 java.util.List<ParameterHolder[]> parametersList,
                                 java.util.concurrent.ThreadPoolExecutor readScheduler)
        Bulk execute for client-side PreparedStatement.executeBatch (no prepare).
        Parameters:
        protocol - current protocol
        writer - outputStream
        results - results
        clientPrepareResult - clientPrepareResult
        parametersList - parameters
        readScheduler - reading thread-pool
      • AbstractMultiSend

        public AbstractMultiSend​(Protocol protocol,
                                 PacketOutputStream writer,
                                 Results results,
                                 java.util.List<java.lang.String> queries,
                                 java.util.concurrent.ThreadPoolExecutor readScheduler)
        Bulk execute for statement.executeBatch().
        Parameters:
        protocol - protocol
        writer - outputStream
        results - results
        queries - query list
        readScheduler - reading thread-pool
    • Method Detail

      • sendCmd

        public abstract void sendCmd​(PacketOutputStream writer,
                                     Results results,
                                     java.util.List<ParameterHolder[]> parametersList,
                                     java.util.List<java.lang.String> queries,
                                     int paramCount,
                                     BulkStatus status,
                                     PrepareResult prepareResult)
                              throws java.sql.SQLException,
                                     java.io.IOException
        Throws:
        java.sql.SQLException
        java.io.IOException
      • handleResultException

        public abstract java.sql.SQLException handleResultException​(java.sql.SQLException qex,
                                                                    Results results,
                                                                    java.util.List<ParameterHolder[]> parametersList,
                                                                    java.util.List<java.lang.String> queries,
                                                                    int currentCounter,
                                                                    int sendCmdCounter,
                                                                    int paramCount,
                                                                    PrepareResult prepareResult)
      • getParamCount

        public abstract int getParamCount()
      • getTotalExecutionNumber

        public abstract int getTotalExecutionNumber()
      • executeBatch

        public PrepareResult executeBatch()
                                   throws java.sql.SQLException
        Execute Bulk execution (send packets by batch of useBatchMultiSendNumber or when max packet is reached) before reading results.
        Returns:
        prepare result
        Throws:
        java.sql.SQLException - if any error occur
      • executeBatchStandard

        private PrepareResult executeBatchStandard​(int estimatedParameterCount)
                                            throws java.sql.SQLException
        Execute Bulk execution (send packets by batch of useBatchMultiSendNumber or when max packet is reached) before reading results.
        Parameters:
        estimatedParameterCount - parameter counter
        Returns:
        prepare result
        Throws:
        java.sql.SQLException - if any error occur