Interface JdbcStatement

All Superinterfaces:
java.lang.AutoCloseable, Query, java.sql.Statement, java.sql.Wrapper
All Known Subinterfaces:
JdbcPreparedStatement
All Known Implementing Classes:
CallableStatement, ClientPreparedStatement, ServerPreparedStatement, StatementImpl

public interface JdbcStatement
extends java.sql.Statement, Query
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 Details

  • Method Details

    • 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 - if an error occurs
    • 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 - if an error occurs
    • 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.
      Parameters:
      stream - input stream
    • 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().
      Returns:
      input stream
    • 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
      Parameters:
      rs - result set
    • getOpenResultSetCount

      int getOpenResultSetCount()
      Returns the number of open result sets for this statement.
      Returns:
      the number of open result sets for this statement
    • setHoldResultsOpenOverClose

      void setHoldResultsOpenOverClose​(boolean holdResultsOpenOverClose)
    • getQuery

      Query getQuery()