Statement
Date: 2018-05-06

com.mysql.jdbc

## Interface Statement

- All Superinterfaces:
    java.lang.AutoCloseable, java.sql.Statement, Wrapper

      public interface Statement
      extends java.sql.Statement, Wrapper

  This interface contains methods that are considered the "vendor extension" to the JDBC API for MySQL's implementation of java.sql.Statement. For those looking further into the driver implementation, it is not an API that is used for plugability of implementations inside our driver (which is why there are still references to StatementImpl throughout the code).

- - ### Field Summary

    - ### Fields inherited from interface java.sql.Statement

      `CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `disableStreamingResults()` Resets this statements fetch size and result set type to the values they had before enableStreamingResults() was called.
    `void` | `enableStreamingResults()` Workaround for containers that 'check' for sane values of Statement.setFetchSize() so that applications can use the Java variant of libmysql's mysql_use_result() behavior.
    `ExceptionInterceptor` | `getExceptionInterceptor()`
    `java.io.InputStream` | `getLocalInfileInputStream()` Returns the InputStream instance that will be used to send data in response to a "LOAD DATA LOCAL INFILE" statement.
    `int` | `getOpenResultSetCount()` Returns the number of open result sets for this statement.
    `void` | `removeOpenResultSet(ResultSetInternalMethods rs)` Callback for result set instances to remove them from the Set that tracks them per-statement
    `void` | `setHoldResultsOpenOverClose(boolean holdResultsOpenOverClose)`
    `void` | `setLocalInfileInputStream(java.io.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.
    `void` | `setPingTarget(PingTarget pingTarget)`

    - ### Methods inherited from interface java.sql.Statement

      `addBatch, cancel, clearBatch, clearWarnings, close, closeOnCompletion, execute, execute, execute, execute, executeBatch, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

    - ### Methods inherited from interface java.sql.Wrapper

      `isWrapperFor, unwrap`

    - ### Methods inherited from interface com.mysql.jdbc.Wrapper

      `isWrapperFor, unwrap`

- - ### Method Detail

    - #### enableStreamingResults

          void enableStreamingResults()
                                      throws java.sql.SQLException

      Workaround for containers that 'check' for sane values of Statement.setFetchSize() so that applications can use the Java variant of libmysql's mysql_use_result() behavior.
      Throws:
        `java.sql.SQLException`

    - #### disableStreamingResults

          void disableStreamingResults()
                                       throws java.sql.SQLException

      Resets this statements fetch size and result set type to the values they had before enableStreamingResults() was called.
      Throws:
        `java.sql.SQLException`

    - #### setLocalInfileInputStream

          void setLocalInfileInputStream(java.io.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.

    - #### getLocalInfileInputStream

          java.io.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().

    - #### setPingTarget

          void setPingTarget(PingTarget pingTarget)

    - #### getExceptionInterceptor

          ExceptionInterceptor getExceptionInterceptor()

    - #### removeOpenResultSet

          void removeOpenResultSet(ResultSetInternalMethods rs)

      Callback for result set instances to remove them from the Set that tracks them per-statement

    - #### getOpenResultSetCount

          int getOpenResultSetCount()

      Returns the number of open result sets for this statement.

    - #### setHoldResultsOpenOverClose

          void setHoldResultsOpenOverClose(boolean holdResultsOpenOverClose)