JSR 310, Types and SQLInput, SQlOutput

Ulf Zibis Ulf.Zibis at CoSoCo.de
Wed Jan 16 10:26:48 PST 2013


I guess you meant:
     default T readObject(Class<T> type)
not void.

-Ulf

Am 16.01.2013 18:16, schrieb Lance Andersen - Oracle:
>
> Once JSR 310 is integrated into Java SE 8, part of M6, one of the last items for now is updating Types, JDBCType and SQLInput, SQLOutput
>
> For Types/JDBCType, we will:
>
> Add TIME_WITH_TIMEZONE
> Add TIMESTAMP_WITH_TIMEZONE
>
> We should be able to use  DATE, TIME and TIMESTAMP with LocalDate, LocalTime, LocalDateTime
>
> Add the following methods to SQLInput & SQLOutput:
>
>
> SQLInput:
>
>
>      /**
>       * Reads the next attribute in the stream and returns it as an
>       * {@code Object} in the Java programming language.  The
>       * actual type of the object returned is determined by the specified
>       * Java data type, and any customizations present in this
>       * stream's type map.
>       *
>       * <P>A type map is registered with the stream by the JDBC driver before the
>       * stream is passed to the application.
>       *
>       * <P>When the attribute at the head of the stream is an SQL {@code NULL}
>       * the method returns {@code null}.  If the attribute is an SQL
>       * structured or distinct
>       * type, it determines the SQL type of the attribute at the head of the stream.
>       * If the stream's type map has an entry for that SQL type, the driver
>       * constructs an object of the appropriate class and calls the method
>       * {@code SQLData.readSQL} on that object, which reads additional data from the
>       * stream, using the protocol described for that method.
>       *<p>
>       * The default implementation will throw {@code SQLFeatureNotSupportedException}
>       *
>       * @param type Class representing the Java data type to convert the attribute to.
>       * @return the attribute at the head of the stream as an {@code Object} in the
>       * Java programming language;{@code null} if the attribute is SQL {@code NULL}
>       * @exception SQLException if a database access error occurs
>       * @exception SQLFeatureNotSupportedException if the JDBC driver does not support
>       * this method
>       * @since 1.8
>       */
>      default void readObject(Class<T> type) throws SQLException {
>          throw new SQLFeatureNotSupportedException("readObject not implemented");
>      }
>
>
>
>
>
>
> SQLOutput
>
>
>    /**
>     * Writes to the stream the data contained in the given object. The
>     * object will be converted to the specified targetSqlType
>     * before being sent to the stream.
>     *<p>
>     * When the {@code object} is {@code null}, this
>     * method writes an SQL {@code NULL} to the stream.
>     * <p>
>     * If the object has a custom mapping (is of a class implementing the
>     * interface {@code SQLData}),
>     * the JDBC driver should call the method {@code SQLData.writeSQL} to
>     * write it to the SQL data stream.
>     * If, on the other hand, the object is of a class implementing
>     * {@code Ref}, {@code Blob}, {@code Clob},  {@code NClob},
>     *  {@code Struct}, {@code java.net.URL},
>     * or {@code Array}, the driver should pass it to the database as a
>     * value of the corresponding SQL type.
>     *<P>
>     * The default implementation will throw {@code SQLFeatureNotSupportedException}
>     *
>     * @param x the object  representing value to be sent to the database
>     * @param targetSqlType the SQL type to convert the object to
>     * @exception SQLException if a database access error occurs
>     * @exception SQLFeatureNotSupportedException if
>     * the JDBC driver does not support this data type
>     * @see JDBCType
>     * @see SQLType
>     * @since 1.8
>     */
>    default void writeObject(Object x, SQLType targetSqlType) throws SQLException {
>          throw new SQLFeatureNotSupportedException("writeObject not implemented");
>    }
>
>
> I have had a brief discussion some of you get your input prior to sending this out to the wider audience to make sure we are in sync
>
> Best
> Lance
>
> Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
> Oracle Java Engineering
> 1 Network Drive
> Burlington, MA 01803
> Lance.Andersen at oracle.com
>
>



More information about the jdbc-spec-discuss mailing list