Class MPreparedStatement

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.PreparedStatement, java.sql.Statement, java.sql.Wrapper

    class MPreparedStatement
    extends MStatement
    implements java.sql.PreparedStatement
    An implementation of a JDBC prepared statement. Multi-threaded issue: This class is not designed to be multi-thread safe. A PreparedStatement should not be accessed by concurrent threads.
    • Field Detail

      • statement

        private SQLQuery statement
        The SQLQuery object constructed for this statement.
      • TIMESTAMP_VALUE_INCLUDES_NANOS

        private static final boolean TIMESTAMP_VALUE_INCLUDES_NANOS
        True if the timestamp value includes nanoseconds, which is the case starting with Java 1.4.0
    • Constructor Detail

      • MPreparedStatement

        MPreparedStatement​(MConnection connection,
                           java.lang.String sql)
        Constructs the PreparedStatement.
    • Method Detail

      • convertToType

        java.lang.Object convertToType​(java.lang.Object ob,
                                       int sqlType)
                                throws java.sql.SQLException
        Converts the given Object to the given SQL type object.
        Throws:
        java.sql.SQLException
      • castToMckoiObject

        java.lang.Object castToMckoiObject​(java.lang.Object ob)
                                    throws java.sql.SQLException
        Converts a Java Object using the JDBC type conversion rules. For example, java.lang.Double is converted to a NUMERIC type (com.mckoi.util.BigNumber).
        Throws:
        java.sql.SQLException
      • setVariableLengthStream

        private void setVariableLengthStream​(int parameterIndex,
                                             java.io.InputStream x,
                                             int length,
                                             byte type)
                                      throws java.io.IOException
        Given an InputStream and a length of bytes to read from the stream, this method will insert a correct type of parameter into the statement to handle this size of object. If the object is too large it will mark it as a streamable object.
        Parameters:
        parameterIndex - 1 for first parameter, 2 for second, etc.
        x - the input stream containing the binary data.
        length - the number of bytes to read.
        type - 2 = binary, 3 = 1 byte char, 4 = 2 byte unicode.
        Throws:
        java.io.IOException
      • close

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

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

        public int executeUpdate()
                          throws java.sql.SQLException
        Specified by:
        executeUpdate in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setNull

        public void setNull​(int parameterIndex,
                            int sqlType)
                     throws java.sql.SQLException
        Specified by:
        setNull in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setBoolean

        public void setBoolean​(int parameterIndex,
                               boolean x)
                        throws java.sql.SQLException
        Specified by:
        setBoolean in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setByte

        public void setByte​(int parameterIndex,
                            byte x)
                     throws java.sql.SQLException
        Specified by:
        setByte in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setShort

        public void setShort​(int parameterIndex,
                             short x)
                      throws java.sql.SQLException
        Specified by:
        setShort in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setInt

        public void setInt​(int parameterIndex,
                           int x)
                    throws java.sql.SQLException
        Specified by:
        setInt in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setLong

        public void setLong​(int parameterIndex,
                            long x)
                     throws java.sql.SQLException
        Specified by:
        setLong in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setFloat

        public void setFloat​(int parameterIndex,
                             float x)
                      throws java.sql.SQLException
        Specified by:
        setFloat in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setDouble

        public void setDouble​(int parameterIndex,
                              double x)
                       throws java.sql.SQLException
        Specified by:
        setDouble in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setBigDecimal

        public void setBigDecimal​(int parameterIndex,
                                  java.math.BigDecimal x)
                           throws java.sql.SQLException
        Specified by:
        setBigDecimal in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setString

        public void setString​(int parameterIndex,
                              java.lang.String x)
                       throws java.sql.SQLException
        Specified by:
        setString in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setBytes

        public void setBytes​(int parameterIndex,
                             byte[] x)
                      throws java.sql.SQLException
        Specified by:
        setBytes in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • extSetDate

        public void extSetDate​(int parameterIndex,
                               java.util.Date x)
                        throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setDate

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

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

        public void setTimestamp​(int parameterIndex,
                                 java.sql.Timestamp x)
                          throws java.sql.SQLException
        Specified by:
        setTimestamp in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setAsciiStream

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

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

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

        public void clearParameters()
                             throws java.sql.SQLException
        Specified by:
        clearParameters in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setObject

        public void setObject​(int parameterIndex,
                              java.lang.Object x,
                              int targetSqlType,
                              int scale)
                       throws java.sql.SQLException
        Specified by:
        setObject in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setObject

        public void setObject​(int parameterIndex,
                              java.lang.Object x,
                              int targetSqlType)
                       throws java.sql.SQLException
        Specified by:
        setObject in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setObject

        public void setObject​(int parameterIndex,
                              java.lang.Object x)
                       throws java.sql.SQLException
        Specified by:
        setObject in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • execute

        public boolean execute()
                        throws java.sql.SQLException
        Specified by:
        execute in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • addBatch

        public void addBatch()
                      throws java.sql.SQLException
        Specified by:
        addBatch in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setCharacterStream

        public 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 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 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 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 void setArray​(int i,
                             java.sql.Array x)
                      throws java.sql.SQLException
        Specified by:
        setArray in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • getMetaData

        public java.sql.ResultSetMetaData getMetaData()
                                               throws java.sql.SQLException
        Specified by:
        getMetaData in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setDate

        public void setDate​(int parameterIndex,
                            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 void setTime​(int parameterIndex,
                            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 void setTimestamp​(int parameterIndex,
                                 java.sql.Timestamp x,
                                 java.util.Calendar cal)
                          throws java.sql.SQLException
        Specified by:
        setTimestamp in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setNull

        public void setNull​(int paramIndex,
                            int sqlType,
                            java.lang.String typeName)
                     throws java.sql.SQLException
        Specified by:
        setNull in interface java.sql.PreparedStatement
        Throws:
        java.sql.SQLException
      • setURL

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

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

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

        public void closeOnCompletion()
                               throws java.sql.SQLException
        Specified by:
        closeOnCompletion in interface java.sql.Statement
        Overrides:
        closeOnCompletion in class MStatement
        Throws:
        java.sql.SQLException
      • toString

        public java.lang.String toString()
        For diagnostics.
        Overrides:
        toString in class java.lang.Object