AI-generated Key Takeaways
-
The
SQLOutputinterface is used internally by the JDBC driver to write data of user-defined types to the database. -
Programmers do not directly interact with
SQLOutput; instead, they implement theSQLDatainterface, which utilizesSQLOutputfor custom type mapping. -
The
SQLData.writeSQLmethod leveragesSQLOutput's various writer methods to serialize an object's data into the database stream according to its SQL type definition. -
SQLOutputoffers a comprehensive suite of methods to handle diverse data types, ranging from primitive types to complex SQL structures like arrays and BLOBs. -
While
SQLOutputstreamlines the process of writing user-defined types, its methods may throwSQLExceptionorSQLFeatureNotSupportedExceptionin cases of database errors or unsupported features, respectively.
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.
Public Method Summary
| abstract void | |
| abstract void |
writeAsciiStream(InputStream x)
Writes the next attribute to the stream as a stream of ASCII characters.
|
| abstract void |
writeBigDecimal(BigDecimal x)
Writes the next attribute to the stream as a java.math.BigDecimal object.
|
| abstract void |
writeBinaryStream(InputStream x)
Writes the next attribute to the stream as a stream of uninterpreted
bytes.
|
| abstract void | |
| abstract void |
writeBoolean(boolean x)
Writes the next attribute to the stream as a Java boolean.
|
| abstract void |
writeByte(byte x)
Writes the next attribute to the stream as a Java byte.
|
| abstract void |
writeBytes(byte[] x)
Writes the next attribute to the stream as an array of bytes.
|
| abstract void |
writeCharacterStream(Reader x)
Writes the next attribute to the stream as a stream of Unicode characters.
|
| abstract void | |
| abstract void | |
| abstract void |
writeDouble(double x)
Writes the next attribute to the stream as a Java double.
|
| abstract void |
writeFloat(float x)
Writes the next attribute to the stream as a Java float.
|
| abstract void |
writeInt(int x)
Writes the next attribute to the stream as a Java int.
|
| abstract void |
writeLong(long x)
Writes the next attribute to the stream as a Java long.
|
| abstract void | |
| abstract void |
writeNString(String x)
Writes the next attribute to the stream as a
String
in the Java programming language. |
| abstract void | |
| abstract void | |
| abstract void | |
| abstract void | |
| abstract void |
writeShort(short x)
Writes the next attribute to the stream as a Java short.
|
| abstract void |
writeString(String x)
Writes the next attribute to the stream as a
String
in the Java programming language. |
| abstract void | |
| abstract void | |
| abstract void | |
| abstract void |
Public Methods
public abstract void writeArray (Array x)
Writes an SQL ARRAY value to the stream.
Parameters
| x | an Array object representing data of an SQL
ARRAY type |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeAsciiStream (InputStream x)
Writes the next attribute to the stream as a stream of ASCII characters.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeBigDecimal (BigDecimal x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeBinaryStream (InputStream x)
Writes the next attribute to the stream as a stream of uninterpreted bytes.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeBlob (Blob x)
Writes an SQL BLOB value to the stream.
Parameters
| x | a Blob object representing data of an SQL
BLOB value |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeBoolean (boolean x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeByte (byte x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeBytes (byte[] x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeCharacterStream (Reader x)
Writes the next attribute to the stream as a stream of Unicode characters.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeClob (Clob x)
Writes an SQL CLOB value to the stream.
Parameters
| x | a Clob object representing data of an SQL
CLOB value |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeDate (Date x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeDouble (double x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeFloat (float x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeInt (int x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeLong (long x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeNClob (NClob x)
Writes an SQL NCLOB value to the stream.
Parameters
| x | a NClob object representing data of an SQL
NCLOB value |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeNString (String x)
Writes the next attribute to the stream as a String
in the Java programming language. The driver converts this to a
SQL NCHAR or
NVARCHAR or LONGNVARCHAR value
(depending on the argument's
size relative to the driver's limits on NVARCHAR values)
when it sends it to the stream.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeObject (SQLData x)
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.
Parameters
| x | the object representing data of an SQL structured or distinct type |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeRef (Ref x)
Writes an SQL REF value to the stream.
Parameters
| x | a Ref object representing data of an SQL
REF value |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeRowId (RowId x)
Writes an SQL ROWID value to the stream.
Parameters
| x | a RowId object representing data of an SQL
ROWID value |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeSQLXML (SQLXML x)
Writes an SQL XML value to the stream.
Parameters
| x | a SQLXML object representing data of an SQL
XML value |
|---|
Throws
| SQLException | if a database access error occurs,
the java.xml.transform.Result,
Writer or OutputStream has not been closed for the SQLXML object or
if there is an error processing the XML value. The getCause method
of the exception may provide a more detailed exception, for example, if the
stream does not contain valid XML. |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeShort (short x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeString (String x)
Writes the next attribute to the stream as a String
in the Java programming language.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeStruct (Struct x)
Writes an SQL structured type value to the stream.
Parameters
| x | a Struct object representing data of an SQL
structured type |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeTime (Time x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeTimestamp (Timestamp x)
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.
Parameters
| x | the value to pass to the database |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract void writeURL (URL x)
Writes a SQL DATALINK value to the stream.
Parameters
| x | a java.net.URL object representing the data
of SQL DATALINK type |
|---|
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |