/* * @(#)SQLOutput.java 1.20 03/12/19 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.sql; /** * The output stream for writing the attributes of a user-defined * type back to the database. This interface, used * only for custom mapping, is used by the driver, and its * methods are never directly invoked by a programmer. *

When an object of a class implementing the interface * SQLData is passed as an argument to an SQL statement, the * JDBC driver calls the method SQLData.getSQLType to * determine the kind of SQL * datum being passed to the database. * The driver then creates an instance of SQLOutput and * passes it to the method SQLData.writeSQL. * The method writeSQL in turn calls the * appropriate SQLOutput writer methods * writeBoolean, writeCharacterStream, and so on) * to write data from the SQLData object to * the SQLOutput output stream as the * representation of an SQL user-defined type. * @since 1.2 */ public interface SQLOutput { //================================================================ // Methods for writing attributes to the stream of SQL data. // These methods correspond to the column-accessor methods of // java.sql.ResultSet. //================================================================ /** * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeString(String x) throws SQLException; /** * Writes the next attribute to the stream as a Java boolean. * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeBoolean(boolean x) throws SQLException; /** * Writes the next attribute to the stream as a Java byte. * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeByte(byte x) throws SQLException; /** * Writes the next attribute to the stream as a Java short. * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeShort(short x) throws SQLException; /** * Writes the next attribute to the stream as a Java int. * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeInt(int x) throws SQLException; /** * Writes the next attribute to the stream as a Java long. * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeLong(long x) throws SQLException; /** * Writes the next attribute to the stream as a Java float. * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeFloat(float x) throws SQLException; /** * Writes the next attribute to the stream as a Java double. * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeDouble(double x) throws SQLException; /** * Writes the next attribute to the stream as a java.math.BigDecimal object. * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeBigDecimal(java.math.BigDecimal x) throws SQLException; /** * Writes the next attribute to the stream as an array of bytes. * Writes the next attribute to the stream as a String * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeBytes(byte[] x) throws SQLException; /** * Writes the next attribute to the stream as a java.sql.Date object. * Writes the next attribute to the stream as a java.sql.Date object * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeDate(java.sql.Date x) throws SQLException; /** * Writes the next attribute to the stream as a java.sql.Time object. * Writes the next attribute to the stream as a java.sql.Date object * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeTime(java.sql.Time x) throws SQLException; /** * Writes the next attribute to the stream as a java.sql.Timestamp object. * Writes the next attribute to the stream as a java.sql.Date object * in the Java programming language. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeTimestamp(java.sql.Timestamp x) throws SQLException; /** * Writes the next attribute to the stream as a stream of Unicode characters. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeCharacterStream(java.io.Reader x) throws SQLException; /** * Writes the next attribute to the stream as a stream of ASCII characters. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeAsciiStream(java.io.InputStream x) throws SQLException; /** * Writes the next attribute to the stream as a stream of uninterpreted * bytes. * * @param x the value to pass to the database * @exception SQLException if a database access error occurs */ void writeBinaryStream(java.io.InputStream x) throws SQLException; //================================================================ // Methods for writing items of SQL user-defined types to the stream. // These methods pass objects to the database as values of SQL // Structured Types, Distinct Types, Constructed Types, and Locator // Types. They decompose the Java object(s) and write leaf data // items using the methods above. //================================================================ /** * Writes to the stream the data contained in the given * SQLData object. * When the SQLData object is null, this * method writes an SQL NULL to the stream. * Otherwise, it calls the SQLData.writeSQL * method of the given object, which * writes the object's attributes to the stream. * The implementation of the method SQLData.writeSQ * calls the appropriate SQLOutput writer method(s) * for writing each of the object's attributes in order. * The attributes must be read from an SQLInput * input stream and written to an SQLOutput * output stream in the same order in which they were * listed in the SQL definition of the user-defined type. * * @param x the object representing data of an SQL structured or * distinct type * @exception SQLException if a database access error occurs */ void writeObject(SQLData x) throws SQLException; /** * Writes an SQL REF value to the stream. * * @param x a Ref object representing data of an SQL * REF value * @exception SQLException if a database access error occurs */ void writeRef(Ref x) throws SQLException; /** * Writes an SQL BLOB value to the stream. * * @param x a Blob object representing data of an SQL * BLOB value * * @exception SQLException if a database access error occurs */ void writeBlob(Blob x) throws SQLException; /** * Writes an SQL CLOB value to the stream. * * @param x a Clob object representing data of an SQL * CLOB value * * @exception SQLException if a database access error occurs */ void writeClob(Clob x) throws SQLException; /** * Writes an SQL structured type value to the stream. * * @param x a Struct object representing data of an SQL * structured type * * @exception SQLException if a database access error occurs */ void writeStruct(Struct x) throws SQLException; /** * Writes an SQL ARRAY value to the stream. * * @param x an Array object representing data of an SQL * ARRAY type * * @exception SQLException if a database access error occurs */ void writeArray(Array x) throws SQLException; //--------------------------- JDBC 3.0 ------------------------ /** * Writes a SQL DATALINK value to the stream. * * @param x a java.net.URL object representing the data * of SQL DATALINK type * * @exception SQLException if a database access error occurs * @since 1.4 */ void writeURL(java.net.URL x) throws SQLException; }