AI-generated Key Takeaways
-
SQLInputis an interface used internally by JDBC drivers for custom mapping of SQL structured types and distinct types to Java objects. -
Developers primarily interact with it indirectly through the
SQLDatainterface. -
SQLInputprovidesreadermethods for various SQL data types likereadLong,readBytes,readNClob, etc., returning corresponding Java objects. -
wasNull()method can be used to check if the last value read from the stream was SQLNULL. -
It is crucial to call the
readermethods in the order the attributes are defined in the SQL type definition for proper data retrieval.
An input stream that contains a stream of values representing an
instance of an SQL structured type or an SQL distinct type.
This interface, used only for custom mapping, is used by the driver
behind the scenes, and a programmer never directly invokes
SQLInput methods. The reader methods
(readLong, readBytes, and so on)
provide a way for an implementation of the SQLData
interface to read the values in an SQLInput object.
And as described in SQLData, calls to reader methods must
be made in the order that their corresponding attributes appear in the
SQL definition of the type.
The method wasNull is used to determine whether
the last value read was SQL NULL.
When the method getObject is called with an
object of a class implementing the interface SQLData,
the JDBC driver calls the method SQLData.getSQLType
to determine the SQL type of the user-defined type (UDT)
being custom mapped. The driver
creates an instance of SQLInput, populating it with the
attributes of the UDT. The driver then passes the input
stream to the method SQLData.readSQL, which in turn
calls the SQLInput reader methods
in its implementation for reading the
attributes from the input stream.
Public Method Summary
| abstract Array |
readArray()
Reads an SQL
ARRAY value from the stream and returns it as an
Array object in the Java programming language. |
| abstract InputStream |
readAsciiStream()
Reads the next attribute in the stream and returns it as a stream of ASCII characters.
|
| abstract BigDecimal |
readBigDecimal()
Reads the next attribute in the stream and returns it as a
java.math.BigDecimal
object in the Java programming language. |
| abstract InputStream |
readBinaryStream()
Reads the next attribute in the stream and returns it as a stream of uninterpreted
bytes.
|
| abstract Blob |
readBlob()
Reads an SQL
BLOB value from the stream and returns it as a
Blob object in the Java programming language. |
| abstract boolean |
readBoolean()
Reads the next attribute in the stream and returns it as a
boolean
in the Java programming language. |
| abstract byte |
readByte()
Reads the next attribute in the stream and returns it as a
byte
in the Java programming language. |
| abstract byte[] |
readBytes()
Reads the next attribute in the stream and returns it as an array of bytes
in the Java programming language.
|
| abstract Reader |
readCharacterStream()
Reads the next attribute in the stream and returns it as a stream of Unicode characters.
|
| abstract Clob |
readClob()
Reads an SQL
CLOB value from the stream and returns it as a
Clob object in the Java programming language. |
| abstract Date |
readDate()
Reads the next attribute in the stream and returns it as a
java.sql.Date object. |
| abstract double |
readDouble()
Reads the next attribute in the stream and returns it as a
double
in the Java programming language. |
| abstract float |
readFloat()
Reads the next attribute in the stream and returns it as a
float
in the Java programming language. |
| abstract int |
readInt()
Reads the next attribute in the stream and returns it as an
int
in the Java programming language. |
| abstract long |
readLong()
Reads the next attribute in the stream and returns it as a
long
in the Java programming language. |
| abstract NClob |
readNClob()
Reads an SQL
NCLOB value from the stream and returns it as a
NClob object in the Java programming language. |
| abstract String |
readNString()
Reads the next attribute in the stream and returns it as a
String
in the Java programming language. |
| abstract Object |
readObject()
Reads the datum at the head of the stream and returns it as an
Object in the Java programming language. |
| abstract Ref |
readRef()
Reads an SQL
REF value from the stream and returns it as a
Ref object in the Java programming language. |
| abstract RowId |
readRowId()
Reads an SQL
ROWID value from the stream and returns it as a
RowId object in the Java programming language. |
| abstract SQLXML |
readSQLXML()
Reads an SQL
XML value from the stream and returns it as a
SQLXML object in the Java programming language. |
| abstract short |
readShort()
Reads the next attribute in the stream and returns it as a
short
in the Java programming language. |
| abstract String |
readString()
Reads the next attribute in the stream and returns it as a
String
in the Java programming language. |
| abstract Time |
readTime()
Reads the next attribute in the stream and returns it as a
java.sql.Time object. |
| abstract Timestamp |
readTimestamp()
Reads the next attribute in the stream and returns it as a
java.sql.Timestamp object. |
| abstract URL |
readURL()
Reads an SQL
DATALINK value from the stream and returns it as a
java.net.URL object in the Java programming language. |
| abstract boolean |
wasNull()
Retrieves whether the last value read was SQL
NULL. |
Public Methods
public abstract Array readArray ()
Reads an SQL ARRAY value from the stream and returns it as an
Array object in the Java programming language.
Returns
- an
Arrayobject representing data of the SQLARRAYvalue at the head of the stream;nullif the value read is SQLNULL
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract InputStream readAsciiStream ()
Reads the next attribute in the stream and returns it as a stream of ASCII characters.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract BigDecimal readBigDecimal ()
Reads the next attribute in the stream and returns it as a java.math.BigDecimal
object in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract InputStream readBinaryStream ()
Reads the next attribute in the stream and returns it as a stream of uninterpreted bytes.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract Blob readBlob ()
Reads an SQL BLOB value from the stream and returns it as a
Blob object in the Java programming language.
Returns
- a
Blobobject representing data of the SQLBLOBvalue at the head of the stream;nullif the value read is SQLNULL
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract boolean readBoolean ()
Reads the next attribute in the stream and returns it as a boolean
in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returnsfalse
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract byte readByte ()
Reads the next attribute in the stream and returns it as a byte
in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returns0
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract byte[] readBytes ()
Reads the next attribute in the stream and returns it as an array of bytes in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract Reader readCharacterStream ()
Reads the next attribute in the stream and returns it as a stream of Unicode characters.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract Clob readClob ()
Reads an SQL CLOB value from the stream and returns it as a
Clob object in the Java programming language.
Returns
- a
Clobobject representing data of the SQLCLOBvalue at the head of the stream;nullif the value read is SQLNULL
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract Date readDate ()
Reads the next attribute in the stream and returns it as a java.sql.Date object.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract double readDouble ()
Reads the next attribute in the stream and returns it as a double
in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returns0
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract float readFloat ()
Reads the next attribute in the stream and returns it as a float
in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returns0
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract int readInt ()
Reads the next attribute in the stream and returns it as an int
in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returns0
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract long readLong ()
Reads the next attribute in the stream and returns it as a long
in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returns0
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract NClob readNClob ()
Reads an SQL NCLOB value from the stream and returns it as a
NClob object in the Java programming language.
Returns
- a
NClobobject representing data of the SQLNCLOBvalue at the head of the stream;nullif the value read is SQLNULL
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract String readNString ()
Reads the next attribute in the stream and returns it as a String
in the Java programming language. It is intended for use when
accessing NCHAR,NVARCHAR
and LONGNVARCHAR columns.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract Object readObject ()
Reads the datum at the head of the stream and returns it as an
Object in the Java programming language. The
actual type of the object returned is determined by the default type
mapping, and any customizations present in this stream's type map.
A type map is registered with the stream by the JDBC driver before the stream is passed to the application.
When the datum at the head of the stream is an SQL NULL,
the method returns null. If the datum is an SQL structured or distinct
type, it determines the SQL type of the datum 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
SQLData.readSQL on that object, which reads additional data from the
stream, using the protocol described for that method.
Returns
- the datum at the head of the stream as an
Objectin the Java programming language;nullif the datum is SQLNULL
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract Ref readRef ()
Reads an SQL REF value from the stream and returns it as a
Ref object in the Java programming language.
Returns
- a
Refobject representing the SQLREFvalue at the head of the stream;nullif the value read is SQLNULL
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract RowId readRowId ()
Reads an SQL ROWID value from the stream and returns it as a
RowId object in the Java programming language.
Returns
- a
RowIdobject representing data of the SQLROWIDvalue at the head of the stream;nullif the value read is SQLNULL
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract SQLXML readSQLXML ()
Reads an SQL XML value from the stream and returns it as a
SQLXML object in the Java programming language.
Returns
- a
SQLXMLobject representing data of the SQLXMLvalue at the head of the stream;nullif the value read is SQLNULL
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract short readShort ()
Reads the next attribute in the stream and returns it as a short
in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returns0
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract String readString ()
Reads the next attribute in the stream and returns it as a String
in the Java programming language.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract Time readTime ()
Reads the next attribute in the stream and returns it as a java.sql.Time object.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract Timestamp readTimestamp ()
Reads the next attribute in the stream and returns it as a java.sql.Timestamp object.
Returns
- the attribute; if the value is SQL
NULL, returnsnull
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract URL readURL ()
Reads an SQL DATALINK value from the stream and returns it as a
java.net.URL object in the Java programming language.
Returns
- a
java.net.URLobject.
Throws
| SQLException | if a database access error occurs, or if a URL is malformed |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |
public abstract boolean wasNull ()
Retrieves whether the last value read was SQL NULL.
Returns
trueif the most recently read SQL value was SQLNULL;falseotherwise
Throws
| SQLException | if a database access error occurs |
|---|---|
| SQLFeatureNotSupportedException | if the JDBC driver does not support this method |