See: Description
Array object, which is the mapping in the Java programming language of an SQL
ARRAY value.
BLOB value.
CLOB value.
DATALINK value.
JAVA_OBJECT value.
Ref object, which is the mapping in the Java programming language of an SQL
REF value.
BLOB, CLOB, STRUCT or ARRAY in addition to SQL types such as
DATALINK and JAVAOBJECT
Standard JDBC RowSet implementations may use these utility classes to assist in the serialization of disconnected RowSet objects. This is useful when transmitting a disconnected RowSet object over the wire to a different VM or across layers within an application.
RowSet implementations can use the method
RowSet.getURL() to retrieve a
java.net.URL object, which can be used to manipulate the external data.
Map object is passed to one of the constructors or to the method
getAttributes, the structured type is custom mapped according to the mapping specified in the
Map object.
wasNull is used to determine whether the the last value read was SQL NULL.
Map object is called, the JDBC driver calls the method
SQLData.getSQLType to determine the SQL type of the UDT being custom mapped. The driver creates an instance of
SQLInputImpl, 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
SQLInputImpl methods to read the attributes from the input stream.
SQLOutputImpl and pass it to the method
SQLData.writeSQL. The method
writeSQL in turn calls the appropriate
SQLOutputImpl writer methods to write data from the
SQLData object to the
SQLOutputImpl output stream as the representation of an SQL user-defined type.
A programmer defines the mapping by implementing the interface SQLData. For example, if an SQL structured type named AUTHORS has the attributes NAME, TITLE, and PUBLISHER, it could be mapped to a Java class named Authors. The Authors class could have the fields name, title, and publisher, to which the attributes of AUTHORS are mapped. In such a case, the implementation of SQLData could look like the following:
public class Authors implements SQLData {
public String name;
public String title;
public String publisher;
private String sql_type;
public String getSQLTypeName() {
return sql_type;
}
public void readSQL(SQLInput stream, String type)
throws SQLException {
sql_type = type;
name = stream.readString();
title = stream.readString();
publisher = stream.readString();
}
public void writeSQL(SQLOutput stream) throws SQLException {
stream.writeString(name);
stream.writeString(title);
stream.writeString(publisher);
}
}
A
java.util.Map object is used to associate the SQL structured type with its mapping to the class
Authors. The following code fragment shows how a
Map object might be created and given an entry associating
AUTHORS and
Authors.
java.util.Map map = new java.util.HashMap();
map.put("SCHEMA_NAME.AUTHORS", Class.forName("Authors");
The
Map object
map now contains an entry with the fully qualified name of the SQL structured type and the
Class object for the class
Authors. It can be passed to a method to tell the driver how to map
AUTHORS to
Authors.
For a disconnected RowSet object, custom mapping can be done only when a Map object is passed to the method or constructor that will be doing the custom mapping. The situation is different for connected RowSet objects because they maintain a connection with the data source. A method that does custom mapping and is called by a disconnected RowSet object may use the Map object that is associated with the Connection object being used. So, in other words, if no map is specified, the connection's type map can be used by default.