Class BrokeredPreparedStatement

    • Field Detail

      • sql

        final java.lang.String sql
        SQL used to create me.
      • generatedKeys

        private final java.lang.Object generatedKeys
        An Integer, an int array or a String array that specifies generated key columns, or null if there are no generated key columns.
    • Constructor Detail

      • BrokeredPreparedStatement

        public BrokeredPreparedStatement​(BrokeredStatementControl control,
                                         java.lang.String sql,
                                         java.lang.Object generatedKeys)
                                  throws java.sql.SQLException
        Throws:
        java.sql.SQLException
    • Method Detail

      • executeQuery

        public final java.sql.ResultSet executeQuery()
                                              throws java.sql.SQLException
        A prepared SQL query is executed and its ResultSet is returned.
        Specified by:
        executeQuery in interface java.sql.PreparedStatement
        Returns:
        a ResultSet that contains the data produced by the query; never null
        Throws:
        java.sql.SQLException - thrown on failure.
      • executeUpdate

        public final int executeUpdate()
                                throws java.sql.SQLException
        Execute a SQL INSERT, UPDATE or DELETE statement. In addition, SQL statements that return nothing such as SQL DDL statements can be executed.
        Specified by:
        executeUpdate in interface java.sql.PreparedStatement
        Returns:
        either the row count for INSERT, UPDATE or DELETE; or 0 for SQL statements that return nothing
        Throws:
        java.sql.SQLException - thrown on failure.
      • close

        public void close()
                   throws java.sql.SQLException
        Description copied from class: BrokeredStatement
        In many cases, it is desirable to immediately release a Statements's database and JDBC resources instead of waiting for this to happen when it is automatically closed; the close method provides this immediate release.

        Note: A Statement is automatically closed when it is garbage collected. When a Statement is closed its current ResultSet, if one exists, is also closed.

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.sql.Statement
        Overrides:
        close in class BrokeredStatement
        Throws:
        java.sql.SQLException - thrown on failure.
      • setNull

        public final void setNull​(int parameterIndex,
                                  int sqlType)
                           throws java.sql.SQLException
        Set a parameter to SQL NULL.

        Note: You must specify the parameter's SQL type.

        Specified by:
        setNull in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        sqlType - SQL type code defined by java.sql.Types
        Throws:
        java.sql.SQLException - thrown on failure.
      • setNull

        public final void setNull​(int parameterIndex,
                                  int sqlType,
                                  java.lang.String typeName)
                           throws java.sql.SQLException
        Set a parameter to SQL NULL.

        Note: You must specify the parameter's SQL type.

        Specified by:
        setNull in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        sqlType - SQL type code defined by java.sql.Types
        Throws:
        java.sql.SQLException - thrown on failure.
      • setBoolean

        public final void setBoolean​(int parameterIndex,
                                     boolean x)
                              throws java.sql.SQLException
        Set a parameter to a Java boolean value. According to the JDBC API spec, the driver converts this to a SQL BIT value when it sends it to the database. But we don't have to do this, since the database engine supports a boolean type.
        Specified by:
        setBoolean in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setByte

        public final void setByte​(int parameterIndex,
                                  byte x)
                           throws java.sql.SQLException
        Set a parameter to a Java byte value. The driver converts this to a SQL TINYINT value when it sends it to the database.
        Specified by:
        setByte in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setShort

        public final void setShort​(int parameterIndex,
                                   short x)
                            throws java.sql.SQLException
        Set a parameter to a Java short value. The driver converts this to a SQL SMALLINT value when it sends it to the database.
        Specified by:
        setShort in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setInt

        public final void setInt​(int parameterIndex,
                                 int x)
                          throws java.sql.SQLException
        Set a parameter to a Java int value. The driver converts this to a SQL INTEGER value when it sends it to the database.
        Specified by:
        setInt in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setLong

        public final void setLong​(int parameterIndex,
                                  long x)
                           throws java.sql.SQLException
        Set a parameter to a Java long value. The driver converts this to a SQL BIGINT value when it sends it to the database.
        Specified by:
        setLong in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setFloat

        public final void setFloat​(int parameterIndex,
                                   float x)
                            throws java.sql.SQLException
        Set a parameter to a Java float value. The driver converts this to a SQL FLOAT value when it sends it to the database.
        Specified by:
        setFloat in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setDouble

        public final void setDouble​(int parameterIndex,
                                    double x)
                             throws java.sql.SQLException
        Set a parameter to a Java double value. The driver converts this to a SQL DOUBLE value when it sends it to the database.
        Specified by:
        setDouble in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setBigDecimal

        public final void setBigDecimal​(int parameterIndex,
                                        java.math.BigDecimal x)
                                 throws java.sql.SQLException
        Set a parameter to a java.math.BigDecimal value. The driver converts this to a SQL NUMERIC value when it sends it to the database.
        Specified by:
        setBigDecimal in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setString

        public final void setString​(int parameterIndex,
                                    java.lang.String x)
                             throws java.sql.SQLException
        Set a parameter to a Java String value. The driver converts this to a SQL VARCHAR or LONGVARCHAR value (depending on the arguments size relative to the driver's limits on VARCHARs) when it sends it to the database.
        Specified by:
        setString in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setBytes

        public final void setBytes​(int parameterIndex,
                                   byte[] x)
                            throws java.sql.SQLException
        Set a parameter to a Java array of bytes. The driver converts this to a SQL VARBINARY or LONGVARBINARY (depending on the argument's size relative to the driver's limits on VARBINARYs) when it sends it to the database.
        Specified by:
        setBytes in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setDate

        public final void setDate​(int parameterIndex,
                                  java.sql.Date x)
                           throws java.sql.SQLException
        Set a parameter to a java.sql.Date value. The driver converts this to a SQL DATE value when it sends it to the database.
        Specified by:
        setDate in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setTime

        public final void setTime​(int parameterIndex,
                                  java.sql.Time x)
                           throws java.sql.SQLException
        Set a parameter to a java.sql.Time value. The driver converts this to a SQL TIME value when it sends it to the database.
        Specified by:
        setTime in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setTimestamp

        public final void setTimestamp​(int parameterIndex,
                                       java.sql.Timestamp x)
                                throws java.sql.SQLException
        Set a parameter to a java.sql.Timestamp value. The driver converts this to a SQL TIMESTAMP value when it sends it to the database.
        Specified by:
        setTimestamp in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • setAsciiStream

        public final void setAsciiStream​(int parameterIndex,
                                         java.io.InputStream x,
                                         int length)
                                  throws java.sql.SQLException
        We do this inefficiently and read it all in here. The target type is assumed to be a String.
        Specified by:
        setAsciiStream in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the java input stream which contains the ASCII parameter value
        length - the number of bytes in the stream
        Throws:
        java.sql.SQLException - thrown on failure.
      • setUnicodeStream

        public final void setUnicodeStream​(int parameterIndex,
                                           java.io.InputStream x,
                                           int length)
                                    throws java.sql.SQLException
        Deprecated.
        We do this inefficiently and read it all in here. The target type is assumed to be a String. The unicode source is assumed to be in char[]. RESOLVE: might it be in UTF, instead? that'd be faster!
        Specified by:
        setUnicodeStream in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the java input stream which contains the UNICODE parameter value
        length - the number of bytes in the stream
        Throws:
        java.sql.SQLException - thrown on failure.
      • setBinaryStream

        public final void setBinaryStream​(int parameterIndex,
                                          java.io.InputStream x,
                                          int length)
                                   throws java.sql.SQLException
        Specified by:
        setBinaryStream in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the java input stream which contains the binary parameter value
        length - the number of bytes in the stream
        Throws:
        java.sql.SQLException - thrown on failure.
      • addBatch

        public final void addBatch()
                            throws java.sql.SQLException
        JDBC 2.0 Add a set of parameters to the batch.
        Specified by:
        addBatch in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException - if a database-access error occurs.
      • clearParameters

        public final void clearParameters()
                                   throws java.sql.SQLException

        In general, parameter values remain in force for repeated use of a Statement. Setting a parameter value automatically clears its previous value. However, in some cases it is useful to immediately release the resources used by the current parameter values; this can be done by calling clearParameters.

        Specified by:
        clearParameters in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException - thrown on failure.
      • getMetaData

        public final java.sql.ResultSetMetaData getMetaData()
                                                     throws java.sql.SQLException
        JDBC 2.0 The number, types and properties of a ResultSet's columns are provided by the getMetaData method.
        Specified by:
        getMetaData in interface java.sql.PreparedStatement
        Returns:
        the description of a ResultSet's columns
        Throws:
        java.sql.SQLException - Feature not implemented for now.
      • setObject

        public final void setObject​(int parameterIndex,
                                    java.lang.Object x,
                                    int targetSqlType,
                                    int scale)
                             throws java.sql.SQLException
        The interface says that the type of the Object parameter must be compatible with the type of the targetSqlType. We check that, and if it flies, we expect the underlying engine to do the required conversion once we pass in the value using its type. So, an Integer converting to a CHAR is done via setInteger() support on the underlying CHAR type.

        If x is null, it won't tell us its type, so we pass it on to setNull

        Specified by:
        setObject in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - The first parameter is 1, the second is 2, ...
        x - The object containing the input parameter value
        targetSqlType - The SQL type (as defined in java.sql.Types) to be sent to the database. The scale argument may further qualify this type.
        scale - For java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types this is the number of digits after the decimal. For all other types this value will be ignored,
        Throws:
        java.sql.SQLException - thrown on failure.
      • setObject

        public final void setObject​(int parameterIndex,
                                    java.lang.Object x,
                                    int targetSqlType)
                             throws java.sql.SQLException
        This method is like setObject above, but assumes a scale of zero.
        Specified by:
        setObject in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException - thrown on failure.
      • setObject

        public final void setObject​(int parameterIndex,
                                    java.lang.Object x)
                             throws java.sql.SQLException

        Set the value of a parameter using an object; use the java.lang equivalent objects for integral values.

        The JDBC specification specifies a standard mapping from Java Object types to SQL types. The given argument java object will be converted to the corresponding SQL type before being sent to the database.

        Note that this method may be used to pass datatabase specific abstract data types, by using a Driver specific Java type.

        Specified by:
        setObject in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - The first parameter is 1, the second is 2, ...
        x - The object containing the input parameter value
        Throws:
        java.sql.SQLException - thrown on failure.
      • execute

        public final boolean execute()
                              throws java.sql.SQLException
        Specified by:
        execute in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException - thrown on failure.
        See Also:
        Statement.execute(java.lang.String)
      • setCharacterStream

        public final void setCharacterStream​(int parameterIndex,
                                             java.io.Reader reader,
                                             int length)
                                      throws java.sql.SQLException
        Specified by:
        setCharacterStream in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setRef

        public final void setRef​(int i,
                                 java.sql.Ref x)
                          throws java.sql.SQLException
        Specified by:
        setRef in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setBlob

        public final void setBlob​(int i,
                                  java.sql.Blob x)
                           throws java.sql.SQLException
        Specified by:
        setBlob in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setClob

        public final void setClob​(int i,
                                  java.sql.Clob x)
                           throws java.sql.SQLException
        Specified by:
        setClob in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setArray

        public final void setArray​(int i,
                                   java.sql.Array x)
                            throws java.sql.SQLException
        Specified by:
        setArray in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setDate

        public final void setDate​(int i,
                                  java.sql.Date x,
                                  java.util.Calendar cal)
                           throws java.sql.SQLException
        Specified by:
        setDate in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setTime

        public final void setTime​(int i,
                                  java.sql.Time x,
                                  java.util.Calendar cal)
                           throws java.sql.SQLException
        Specified by:
        setTime in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setTimestamp

        public final void setTimestamp​(int i,
                                       java.sql.Timestamp x,
                                       java.util.Calendar cal)
                                throws java.sql.SQLException
        Specified by:
        setTimestamp in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • executeLargeUpdate

        public long executeLargeUpdate()
                                throws java.sql.SQLException
        Specified by:
        executeLargeUpdate in interface EnginePreparedStatement
        Specified by:
        executeLargeUpdate in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setBinaryStream

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

        public void setCharacterStream​(int parameterIndex,
                                       java.io.Reader reader)
                                throws java.sql.SQLException
        Specified by:
        setCharacterStream in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setURL

        public final void setURL​(int i,
                                 java.net.URL x)
                          throws java.sql.SQLException
        Specified by:
        setURL in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • getParameterMetaData

        public final java.sql.ParameterMetaData getParameterMetaData()
                                                              throws java.sql.SQLException
        Specified by:
        getParameterMetaData in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setRowId

        public final void setRowId​(int parameterIndex,
                                   java.sql.RowId x)
                            throws java.sql.SQLException
        Specified by:
        setRowId in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setNString

        public final void setNString​(int index,
                                     java.lang.String value)
                              throws java.sql.SQLException
        Specified by:
        setNString in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setNCharacterStream

        public final void setNCharacterStream​(int parameterIndex,
                                              java.io.Reader value)
                                       throws java.sql.SQLException
        Specified by:
        setNCharacterStream in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setNCharacterStream

        public final void setNCharacterStream​(int index,
                                              java.io.Reader value,
                                              long length)
                                       throws java.sql.SQLException
        Specified by:
        setNCharacterStream in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setNClob

        public final void setNClob​(int index,
                                   java.sql.NClob value)
                            throws java.sql.SQLException
        Specified by:
        setNClob in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setClob

        public final void setClob​(int parameterIndex,
                                  java.io.Reader reader,
                                  long length)
                           throws java.sql.SQLException
        Specified by:
        setClob in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setBlob

        public final void setBlob​(int parameterIndex,
                                  java.io.InputStream inputStream,
                                  long length)
                           throws java.sql.SQLException
        Specified by:
        setBlob in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setNClob

        public final void setNClob​(int parameterIndex,
                                   java.io.Reader reader)
                            throws java.sql.SQLException
        Specified by:
        setNClob in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setNClob

        public final void setNClob​(int parameterIndex,
                                   java.io.Reader reader,
                                   long length)
                            throws java.sql.SQLException
        Specified by:
        setNClob in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setSQLXML

        public final void setSQLXML​(int parameterIndex,
                                    java.sql.SQLXML xmlObject)
                             throws java.sql.SQLException
        Specified by:
        setSQLXML in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setAsciiStream

        public final void setAsciiStream​(int parameterIndex,
                                         java.io.InputStream x)
                                  throws java.sql.SQLException
        Sets the designated parameter to the given input stream.
        Specified by:
        setAsciiStream in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the Java input stream that contains the ASCII parameter value
        Throws:
        java.sql.SQLException - if a database access error occurs or this method is called on a closed PreparedStatement
      • setAsciiStream

        public final void setAsciiStream​(int parameterIndex,
                                         java.io.InputStream x,
                                         long length)
                                  throws java.sql.SQLException
        Sets the designated parameter to the given input stream, which will have the specified number of bytes.
        Specified by:
        setAsciiStream in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the java input stream which contains the ASCII parameter value
        length - the number of bytes in the stream
        Throws:
        java.sql.SQLException - thrown on failure.
      • setBinaryStream

        public final void setBinaryStream​(int parameterIndex,
                                          java.io.InputStream x,
                                          long length)
                                   throws java.sql.SQLException
        Sets the designated parameter to the given input stream, which will have the specified number of bytes.
        Specified by:
        setBinaryStream in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the java input stream which contains the binary parameter value
        length - the number of bytes in the stream
        Throws:
        java.sql.SQLException - thrown on failure.
      • setBlob

        public final void setBlob​(int parameterIndex,
                                  java.io.InputStream inputStream)
                           throws java.sql.SQLException
        Sets the designated parameter to a InputStream object. This method differs from the setBinaryStream(int, InputStream) method because it informs the driver that the parameter value should be sent to the server as a BLOB.
        Specified by:
        setBlob in interface java.sql.PreparedStatement
        Parameters:
        inputStream - an object that contains the data to set the parameter value to.
        Throws:
        java.sql.SQLException - if a database access error occurs, this method is called on a closed PreparedStatement
      • setCharacterStream

        public final void setCharacterStream​(int parameterIndex,
                                             java.io.Reader x,
                                             long length)
                                      throws java.sql.SQLException
        Sets the designated parameter to the given Reader, which will have the specified number of bytes.
        Specified by:
        setCharacterStream in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        x - the java Reader which contains the UNICODE value
        length - the number of bytes in the stream
        Throws:
        java.sql.SQLException - thrown on failure.
      • setClob

        public final void setClob​(int parameterIndex,
                                  java.io.Reader reader)
                           throws java.sql.SQLException
        Sets the designated parameter to a Reader object. This method differs from the setCharacterStream(int,Reader) method because it informs the driver that the parameter value should be sent to the server as a CLOB.
        Specified by:
        setClob in interface java.sql.PreparedStatement
        Parameters:
        parameterIndex - the first parameter is 1, the second is 2, ...
        reader - an object that contains the data to set the parameter value to.
        Throws:
        java.sql.SQLException - if a database access error occurs, this method is called on a closed PreparedStatement
      • getPreparedStatement

        java.sql.PreparedStatement getPreparedStatement()
                                                 throws java.sql.SQLException
        Access the underlying PreparedStatement. This method is package protected to restrict access to the underlying object to the brokered objects. Allowing the application to access the underlying object thtough a public method would
        Throws:
        java.sql.SQLException
      • getStatement

        public final java.sql.Statement getStatement()
                                              throws java.sql.SQLException
        Override the BrokeredStatement's getStatement() to always return a PreparedStatement.
        Overrides:
        getStatement in class BrokeredStatement
        Throws:
        java.sql.SQLException
      • createDuplicateStatement

        public java.sql.PreparedStatement createDuplicateStatement​(java.sql.Connection conn,
                                                                   java.sql.PreparedStatement oldStatement)
                                                            throws java.sql.SQLException
        Create a duplicate PreparedStatement to this, including state, from the passed in Connection.
        Throws:
        java.sql.SQLException
      • getVersionCounter

        public final long getVersionCounter()
                                     throws java.sql.SQLException
        Description copied from interface: EnginePreparedStatement
        Get the version of the prepared statement. If this has not been changed, the caller may assume that a recompilation has not taken place, i.e. meta-data are (also) unchanged.
        Specified by:
        getVersionCounter in interface EnginePreparedStatement
        Returns:
        version counter
        Throws:
        java.sql.SQLException