接口 Protocol<M extends Message>

    • 方法详细资料

      • setPropertySet

        void setPropertySet​(PropertySet propertySet)
      • setPacketSentTimeHolder

        void setPacketSentTimeHolder​(PacketSentTimeHolder packetSentTimeHolder)
      • connect

        void connect​(String user,
                     String password,
                     String database)
        Create a new session. This generally happens once at the beginning of a connection.
        参数:
        user - DB user name
        password - DB user password
        database - database name
      • negotiateSSLConnection

        void negotiateSSLConnection()
      • beforeHandshake

        void beforeHandshake()
      • afterHandshake

        void afterHandshake()
      • changeDatabase

        void changeDatabase​(String database)
      • changeUser

        void changeUser​(String user,
                        String password,
                        String database)
        Re-authenticates as the given user and password
        参数:
        user - DB user name
        password - DB user password
        database - database name
      • versionMeetsMinimum

        boolean versionMeetsMinimum​(int major,
                                    int minor,
                                    int subminor)
      • readMessage

        M readMessage​(M reuse)
        Read one message from the MySQL server into the reusable buffer if provided or into the new one.
        参数:
        reuse - Message instance to read into, may be null
        返回:
        the message from the server.
      • checkErrorMessage

        M checkErrorMessage()
        Read one message from the MySQL server, checks for errors in it, and if none, returns the message, ready for reading
        返回:
        a message ready for reading.
      • send

        void send​(Message message,
                  int packetLen)
        参数:
        message - Message instance
        packetLen - length of header + payload
      • sendCommand

        M sendCommand​(Message queryPacket,
                      boolean skipCheck,
                      int timeoutMillis)
        Send a command to the MySQL server.
        参数:
        queryPacket - a packet pre-loaded with data for the protocol (eg. from a client-side prepared statement). The first byte of this packet is the MySQL protocol 'command' from MysqlDefs
        skipCheck - do not call checkErrorPacket() if true
        timeoutMillis - timeout
        返回:
        the response packet from the server
        抛出:
        CJException - if an I/O error or SQL error occurs
      • read

        <T extends ProtocolEntity> T read​(Class<Resultset> requiredClass,
                                          int maxRows,
                                          boolean streamResults,
                                          M resultPacket,
                                          boolean isBinaryEncoded,
                                          ColumnDefinition metadata,
                                          ProtocolEntityFactory<T,​M> protocolEntityFactory)
                                   throws IOException
        Read protocol entity.
        类型参数:
        T - object extending the ProtocolEntity
        参数:
        requiredClass - required Resultset class
        maxRows - the maximum number of rows to read (-1 means all rows)
        streamResults - should the driver leave the results on the wire, and read them only when needed?
        resultPacket - the first packet of information in the result set
        isBinaryEncoded - true if the binary protocol is used (for server prepared statements)
        metadata - use this metadata instead of the one provided on wire
        protocolEntityFactory - ProtocolEntityFactory instance
        返回:
        ProtocolEntity instance
        抛出:
        IOException - if an error occurs
      • setLocalInfileInputStream

        void setLocalInfileInputStream​(InputStream stream)
        Sets an InputStream instance that will be used to send data to the MySQL server for a "LOAD DATA LOCAL INFILE" statement rather than a FileInputStream or URLInputStream that represents the path given as an argument to the statement. This stream will be read to completion upon execution of a "LOAD DATA LOCAL INFILE" statement, and will automatically be closed by the driver, so it needs to be reset before each call to execute*() that would cause the MySQL server to request data to fulfill the request for "LOAD DATA LOCAL INFILE". If this value is set to NULL, the driver will revert to using a FileInputStream or URLInputStream as required.
        参数:
        stream - input stream
      • getLocalInfileInputStream

        InputStream getLocalInfileInputStream()
        Returns the InputStream instance that will be used to send data in response to a "LOAD DATA LOCAL INFILE" statement. This method returns NULL if no such stream has been set via setLocalInfileInputStream().
        返回:
        input stream
      • getQueryComment

        String getQueryComment()
        Returns the comment that will be prepended to all statements sent to the server.
        返回:
        query comment string
      • setQueryComment

        void setQueryComment​(String comment)
        Sets the comment that will be prepended to all statements sent to the server. Do not use slash-star or star-slash tokens in the comment as these will be added by the driver itself.
        参数:
        comment - query comment string
      • readQueryResult

        <T extends QueryResult> T readQueryResult​(ResultBuilder<T> resultBuilder)
        Read messages from server and deliver them to resultBuilder.
        类型参数:
        T - result type
        参数:
        resultBuilder - ResultBuilder instance
        返回:
        QueryResult
      • configureTimeZone

        void configureTimeZone()
      • initServerSession

        void initServerSession()
      • reset

        void reset()
        Return Protocol to its initial state right after successful connect.
      • getQueryTimingUnits

        String getQueryTimingUnits()
      • getValueEncoderSupplier

        java.util.function.Supplier<ValueEncoder> getValueEncoderSupplier​(Object obj)