Class MStatement

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Statement, java.sql.Wrapper
    Direct Known Subclasses:
    MPreparedStatement

    class MStatement
    extends java.lang.Object
    implements java.sql.Statement
    An implementation of JDBC Statement.

    Multi-threaded issue: This class is not designed to be multi-thread safe. A Statement should not be accessed by concurrent threads.

    • Field Detail

      • connection

        private MConnection connection
        The MConnection object for this statement.
      • result_set_list

        private MResultSet[] result_set_list
        The list of all MResultSet objects that represents the results of a query.
      • max_field_size

        private int max_field_size
      • max_row_count

        private int max_row_count
      • query_timeout

        private int query_timeout
      • fetch_size

        private int fetch_size
      • head_warning

        private java.sql.SQLWarning head_warning
      • escape_processing

        private boolean escape_processing
      • batch_list

        private java.util.Vector batch_list
        The list of queries to execute in a batch.
      • streamable_object_list

        private java.util.Vector streamable_object_list
        The list of streamable objects created via the 'createStreamableObject' method.
      • multi_result_set_index

        private int multi_result_set_index
        For multiple result sets, the index of the result set we are currently on.
    • Constructor Detail

      • MStatement

        MStatement​(MConnection connection)
        Constructs the statement.
    • Method Detail

      • addSQLWarning

        final void addSQLWarning​(java.sql.SQLWarning warning)
        Adds a new SQLWarning to the chain.
      • internalResultSetList

        final MResultSet[] internalResultSetList​(int count)
        Returns an array of ResultSet objects of the give length for this statement. This is intended for multiple result queries (such as batch statements).
      • internalResultSet

        final MResultSet internalResultSet()
        Returns the single ResultSet object for this statement. This should only be used for single result queries.
      • createStreamableObject

        protected StreamableObject createStreamableObject​(java.io.InputStream x,
                                                          int length,
                                                          byte type)
        Generates a new StreamableObject and stores it in the hold for future access by the server.
      • addBatch

        protected void addBatch​(SQLQuery query)
        Adds a query to the batch of queries executed by this statement.
      • executeQuery

        protected MResultSet executeQuery​(SQLQuery query)
                                   throws java.sql.SQLException
        Executes the given SQLQuery object and fill's in at most the top 10 entries of the result set.
        Throws:
        java.sql.SQLException
      • executeQueries

        protected MResultSet[] executeQueries​(SQLQuery[] queries)
                                       throws java.sql.SQLException
        Executes a batch of SQL queries as listed as an array.
        Throws:
        java.sql.SQLException
      • executeQuery

        public java.sql.ResultSet executeQuery​(java.lang.String sql)
                                        throws java.sql.SQLException
        Specified by:
        executeQuery in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • executeUpdate

        public int executeUpdate​(java.lang.String sql)
                          throws java.sql.SQLException
        Specified by:
        executeUpdate in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • close

        public void close()
                   throws java.sql.SQLException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getMaxFieldSize

        public int getMaxFieldSize()
                            throws java.sql.SQLException
        Specified by:
        getMaxFieldSize in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • setMaxFieldSize

        public void setMaxFieldSize​(int max)
                             throws java.sql.SQLException
        Specified by:
        setMaxFieldSize in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getMaxRows

        public int getMaxRows()
                       throws java.sql.SQLException
        Specified by:
        getMaxRows in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • setMaxRows

        public void setMaxRows​(int max)
                        throws java.sql.SQLException
        Specified by:
        setMaxRows in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • setEscapeProcessing

        public void setEscapeProcessing​(boolean enable)
                                 throws java.sql.SQLException
        Specified by:
        setEscapeProcessing in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getQueryTimeout

        public int getQueryTimeout()
                            throws java.sql.SQLException
        Specified by:
        getQueryTimeout in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • setQueryTimeout

        public void setQueryTimeout​(int seconds)
                             throws java.sql.SQLException
        Specified by:
        setQueryTimeout in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • cancel

        public void cancel()
                    throws java.sql.SQLException
        Specified by:
        cancel in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getWarnings

        public java.sql.SQLWarning getWarnings()
                                        throws java.sql.SQLException
        Specified by:
        getWarnings in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • clearWarnings

        public void clearWarnings()
                           throws java.sql.SQLException
        Specified by:
        clearWarnings in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • setCursorName

        public void setCursorName​(java.lang.String name)
                           throws java.sql.SQLException
        Specified by:
        setCursorName in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • execute

        public boolean execute​(java.lang.String sql)
                        throws java.sql.SQLException
        Specified by:
        execute in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getResultSet

        public java.sql.ResultSet getResultSet()
                                        throws java.sql.SQLException
        Specified by:
        getResultSet in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getUpdateCount

        public int getUpdateCount()
                           throws java.sql.SQLException
        Specified by:
        getUpdateCount in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getMoreResults

        public boolean getMoreResults()
                               throws java.sql.SQLException
        Specified by:
        getMoreResults in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • setFetchSize

        public void setFetchSize​(int rows)
                          throws java.sql.SQLException
        Specified by:
        setFetchSize in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getFetchSize

        public int getFetchSize()
                         throws java.sql.SQLException
        Specified by:
        getFetchSize in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • setFetchDirection

        public void setFetchDirection​(int direction)
                               throws java.sql.SQLException
        Specified by:
        setFetchDirection in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getFetchDirection

        public int getFetchDirection()
                              throws java.sql.SQLException
        Specified by:
        getFetchDirection in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getResultSetConcurrency

        public int getResultSetConcurrency()
                                    throws java.sql.SQLException
        Specified by:
        getResultSetConcurrency in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getResultSetType

        public int getResultSetType()
                             throws java.sql.SQLException
        Specified by:
        getResultSetType in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • addBatch

        public void addBatch​(java.lang.String sql)
                      throws java.sql.SQLException
        Specified by:
        addBatch in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • clearBatch

        public void clearBatch()
                        throws java.sql.SQLException
        Specified by:
        clearBatch in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • executeBatch

        public int[] executeBatch()
                           throws java.sql.SQLException
        Specified by:
        executeBatch in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getConnection

        public java.sql.Connection getConnection()
                                          throws java.sql.SQLException
        Specified by:
        getConnection in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getMoreResults

        public boolean getMoreResults​(int current)
                               throws java.sql.SQLException
        Specified by:
        getMoreResults in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getGeneratedKeys

        public java.sql.ResultSet getGeneratedKeys()
                                            throws java.sql.SQLException
        Specified by:
        getGeneratedKeys in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • executeUpdate

        public int executeUpdate​(java.lang.String sql,
                                 int autoGeneratedKeys)
                          throws java.sql.SQLException
        Specified by:
        executeUpdate in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • executeUpdate

        public int executeUpdate​(java.lang.String sql,
                                 int[] columnIndexes)
                          throws java.sql.SQLException
        Specified by:
        executeUpdate in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • executeUpdate

        public int executeUpdate​(java.lang.String sql,
                                 java.lang.String[] columnNames)
                          throws java.sql.SQLException
        Specified by:
        executeUpdate in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • execute

        public boolean execute​(java.lang.String sql,
                               int autoGeneratedKeys)
                        throws java.sql.SQLException
        Specified by:
        execute in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • execute

        public boolean execute​(java.lang.String sql,
                               int[] columnIndexes)
                        throws java.sql.SQLException
        Specified by:
        execute in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • execute

        public boolean execute​(java.lang.String sql,
                               java.lang.String[] columnNames)
                        throws java.sql.SQLException
        Specified by:
        execute in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • getResultSetHoldability

        public int getResultSetHoldability()
                                    throws java.sql.SQLException
        Specified by:
        getResultSetHoldability in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • isClosed

        public boolean isClosed()
                         throws java.sql.SQLException
        Specified by:
        isClosed in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • setPoolable

        public void setPoolable​(boolean poolable)
                         throws java.sql.SQLException
        Specified by:
        setPoolable in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • isPoolable

        public boolean isPoolable()
                           throws java.sql.SQLException
        Specified by:
        isPoolable in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • unwrap

        public java.lang.Object unwrap​(java.lang.Class iface)
                                throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class iface)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • setRowId

        public void setRowId​(int parameterIndex,
                             java.sql.RowId x)
                      throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setNString

        public void setNString​(int parameterIndex,
                               java.lang.String value)
                        throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setNCharacterStream

        public void setNCharacterStream​(int parameterIndex,
                                        java.io.Reader value,
                                        long length)
                                 throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setNClob

        public void setNClob​(int parameterIndex,
                             java.sql.NClob value)
                      throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setClob

        public void setClob​(int parameterIndex,
                            java.io.Reader reader,
                            long length)
                     throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setBlob

        public void setBlob​(int parameterIndex,
                            java.io.InputStream inputStream,
                            long length)
                     throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setNClob

        public void setNClob​(int parameterIndex,
                             java.io.Reader reader,
                             long length)
                      throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setSQLXML

        public void setSQLXML​(int parameterIndex,
                              java.sql.SQLXML xmlObject)
                       throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setAsciiStream

        public void setAsciiStream​(int parameterIndex,
                                   java.io.InputStream x,
                                   long length)
                            throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setBinaryStream

        public void setBinaryStream​(int parameterIndex,
                                    java.io.InputStream x,
                                    long length)
                             throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setCharacterStream

        public void setCharacterStream​(int parameterIndex,
                                       java.io.Reader reader,
                                       long length)
                                throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setAsciiStream

        public void setAsciiStream​(int parameterIndex,
                                   java.io.InputStream x)
                            throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setBinaryStream

        public void setBinaryStream​(int parameterIndex,
                                    java.io.InputStream x)
                             throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setCharacterStream

        public void setCharacterStream​(int parameterIndex,
                                       java.io.Reader reader)
                                throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setNCharacterStream

        public void setNCharacterStream​(int parameterIndex,
                                        java.io.Reader value)
                                 throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setClob

        public void setClob​(int parameterIndex,
                            java.io.Reader reader)
                     throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setBlob

        public void setBlob​(int parameterIndex,
                            java.io.InputStream inputStream)
                     throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setNClob

        public void setNClob​(int parameterIndex,
                             java.io.Reader reader)
                      throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • isCloseOnCompletion

        public boolean isCloseOnCompletion()
                                    throws java.sql.SQLException
        Specified by:
        isCloseOnCompletion in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • closeOnCompletion

        public void closeOnCompletion()
                               throws java.sql.SQLException
        Specified by:
        closeOnCompletion in interface java.sql.Statement
        Throws:
        java.sql.SQLException
      • finalize

        public void finalize()
        The statement will close when it is garbage collected.
        Overrides:
        finalize in class java.lang.Object