-
- All Known Implementing Classes:
SerialArray
public interface ArrayThe mapping in the Java programming language for the SQL typeARRAY. By default, anArrayvalue is a transaction-duration reference to an SQLARRAYvalue. By default, anArrayobject is implemented using an SQL LOCATOR(array) internally, which means that anArrayobject contains a logical pointer to the data in the SQLARRAYvalue rather than containing theARRAYvalue's data.The
Arrayinterface provides methods for bringing an SQLARRAYvalue's data to the client as either an array or aResultSetobject. If the elements of the SQLARRAYare a UDT, they may be custom mapped. To create a custom mapping, a programmer must do two things:- create a class that implements the
SQLDatainterface for the UDT to be custom mapped. - make an entry in a type map that contains
- the fully-qualified SQL type name of the UDT
- the
Classobject for the class implementingSQLData
When a type map with an entry for the base type is supplied to the methods
getArrayandgetResultSet, the mapping it contains will be used to map the elements of theARRAYvalue. If no type map is supplied, which would typically be the case, the connection's type map is used by default. If the connection's type map or a type map supplied to a method has no entry for the base type, the elements are mapped according to the standard mapping.All methods on the
Arrayinterface must be fully implemented if the JDBC driver supports the data type.- Since:
- 1.2
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidfree()This method frees theArrayobject and releases the resources that it holds.ObjectgetArray()Retrieves the contents of the SQLARRAYvalue designated by thisArrayobject in the form of an array in the Java programming language.ObjectgetArray(long index, int count)Retrieves a slice of the SQLARRAYvalue designated by thisArrayobject, beginning with the specifiedindexand containing up tocountsuccessive elements of the SQL array.ObjectgetArray(long index, int count, Map<String,Class<?>> map)Retrieves a slice of the SQLARRAYvalue designated by thisArrayobject, beginning with the specifiedindexand containing up tocountsuccessive elements of the SQL array.ObjectgetArray(Map<String,Class<?>> map)Retrieves the contents of the SQLARRAYvalue designated by thisArrayobject.intgetBaseType()Retrieves the JDBC type of the elements in the array designated by thisArrayobject.StringgetBaseTypeName()Retrieves the SQL type name of the elements in the array designated by thisArrayobject.ResultSetgetResultSet()Retrieves a result set that contains the elements of the SQLARRAYvalue designated by thisArrayobject.ResultSetgetResultSet(long index, int count)Retrieves a result set holding the elements of the subarray that starts at indexindexand contains up tocountsuccessive elements.ResultSetgetResultSet(long index, int count, Map<String,Class<?>> map)Retrieves a result set holding the elements of the subarray that starts at indexindexand contains up tocountsuccessive elements.ResultSetgetResultSet(Map<String,Class<?>> map)Retrieves a result set that contains the elements of the SQLARRAYvalue designated by thisArrayobject.
-
-
-
Method Detail
-
getBaseTypeName
String getBaseTypeName() throws SQLException
Retrieves the SQL type name of the elements in the array designated by thisArrayobject. If the elements are a built-in type, it returns the database-specific type name of the elements. If the elements are a user-defined type (UDT), this method returns the fully-qualified SQL type name.- Returns:
- a
Stringthat is the database-specific name for a built-in base type; or the fully-qualified SQL type name for a base type that is a UDT - Throws:
SQLException- if an error occurs while attempting to access the type nameSQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
getBaseType
int getBaseType() throws SQLExceptionRetrieves the JDBC type of the elements in the array designated by thisArrayobject.- Returns:
- a constant from the class
Typesthat is the type code for the elements in the array designated by thisArrayobject - Throws:
SQLException- if an error occurs while attempting to access the base typeSQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
getArray
Object getArray() throws SQLException
Retrieves the contents of the SQLARRAYvalue designated by thisArrayobject in the form of an array in the Java programming language. This version of the methodgetArrayuses the type map associated with the connection for customizations of the type mappings.Note: When
getArrayis used to materialize a base type that maps to a primitive data type, then it is implementation-defined whether the array returned is an array of that primitive data type or an array ofObject.- Returns:
- an array in the Java programming language that contains
the ordered elements of the SQL
ARRAYvalue designated by thisArrayobject - Throws:
SQLException- if an error occurs while attempting to access the arraySQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
getArray
Object getArray(Map<String,Class<?>> map) throws SQLException
Retrieves the contents of the SQLARRAYvalue designated by thisArrayobject. This method uses the specifiedmapfor type map customizations unless the base type of the array does not match a user-defined type inmap, in which case it uses the standard mapping. This version of the methodgetArrayuses either the given type map or the standard mapping; it never uses the type map associated with the connection.Note: When
getArrayis used to materialize a base type that maps to a primitive data type, then it is implementation-defined whether the array returned is an array of that primitive data type or an array ofObject.- Parameters:
map- ajava.util.Mapobject that contains mappings of SQL type names to classes in the Java programming language- Returns:
- an array in the Java programming language that contains the ordered elements of the SQL array designated by this object
- Throws:
SQLException- if an error occurs while attempting to access the arraySQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
getArray
Object getArray(long index, int count) throws SQLException
Retrieves a slice of the SQLARRAYvalue designated by thisArrayobject, beginning with the specifiedindexand containing up tocountsuccessive elements of the SQL array. This method uses the type map associated with the connection for customizations of the type mappings.Note: When
getArrayis used to materialize a base type that maps to a primitive data type, then it is implementation-defined whether the array returned is an array of that primitive data type or an array ofObject.- Parameters:
index- the array index of the first element to retrieve; the first element is at index 1count- the number of successive SQL array elements to retrieve- Returns:
- an array containing up to
countconsecutive elements of the SQL array, beginning with elementindex - Throws:
SQLException- if an error occurs while attempting to access the arraySQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
getArray
Object getArray(long index, int count, Map<String,Class<?>> map) throws SQLException
Retrieves a slice of the SQLARRAYvalue designated by thisArrayobject, beginning with the specifiedindexand containing up tocountsuccessive elements of the SQL array.This method uses the specified
mapfor type map customizations unless the base type of the array does not match a user-defined type inmap, in which case it uses the standard mapping. This version of the methodgetArrayuses either the given type map or the standard mapping; it never uses the type map associated with the connection.Note: When
getArrayis used to materialize a base type that maps to a primitive data type, then it is implementation-defined whether the array returned is an array of that primitive data type or an array ofObject.- Parameters:
index- the array index of the first element to retrieve; the first element is at index 1count- the number of successive SQL array elements to retrievemap- ajava.util.Mapobject that contains SQL type names and the classes in the Java programming language to which they are mapped- Returns:
- an array containing up to
countconsecutive elements of the SQLARRAYvalue designated by thisArrayobject, beginning with elementindex - Throws:
SQLException- if an error occurs while attempting to access the arraySQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
getResultSet
ResultSet getResultSet() throws SQLException
Retrieves a result set that contains the elements of the SQLARRAYvalue designated by thisArrayobject. If appropriate, the elements of the array are mapped using the connection's type map; otherwise, the standard mapping is used.The result set contains one row for each array element, with two columns in each row. The second column stores the element value; the first column stores the index into the array for that element (with the first array element being at index 1). The rows are in ascending order corresponding to the order of the indices.
- Returns:
- a
ResultSetobject containing one row for each of the elements in the array designated by thisArrayobject, with the rows in ascending order based on the indices. - Throws:
SQLException- if an error occurs while attempting to access the arraySQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
getResultSet
ResultSet getResultSet(Map<String,Class<?>> map) throws SQLException
Retrieves a result set that contains the elements of the SQLARRAYvalue designated by thisArrayobject. This method uses the specifiedmapfor type map customizations unless the base type of the array does not match a user-defined type inmap, in which case it uses the standard mapping. This version of the methodgetResultSetuses either the given type map or the standard mapping; it never uses the type map associated with the connection.The result set contains one row for each array element, with two columns in each row. The second column stores the element value; the first column stores the index into the array for that element (with the first array element being at index 1). The rows are in ascending order corresponding to the order of the indices.
- Parameters:
map- contains the mapping of SQL user-defined types to classes in the Java programming language- Returns:
- a
ResultSetobject containing one row for each of the elements in the array designated by thisArrayobject, with the rows in ascending order based on the indices. - Throws:
SQLException- if an error occurs while attempting to access the arraySQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
getResultSet
ResultSet getResultSet(long index, int count) throws SQLException
Retrieves a result set holding the elements of the subarray that starts at indexindexand contains up tocountsuccessive elements. This method uses the connection's type map to map the elements of the array if the map contains an entry for the base type. Otherwise, the standard mapping is used.The result set has one row for each element of the SQL array designated by this object, with the first row containing the element at index
index. The result set has up tocountrows in ascending order based on the indices. Each row has two columns: The second column stores the element value; the first column stores the index into the array for that element.- Parameters:
index- the array index of the first element to retrieve; the first element is at index 1count- the number of successive SQL array elements to retrieve- Returns:
- a
ResultSetobject containing up tocountconsecutive elements of the SQL array designated by thisArrayobject, starting at indexindex. - Throws:
SQLException- if an error occurs while attempting to access the arraySQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
getResultSet
ResultSet getResultSet(long index, int count, Map<String,Class<?>> map) throws SQLException
Retrieves a result set holding the elements of the subarray that starts at indexindexand contains up tocountsuccessive elements. This method uses the specifiedmapfor type map customizations unless the base type of the array does not match a user-defined type inmap, in which case it uses the standard mapping. This version of the methodgetResultSetuses either the given type map or the standard mapping; it never uses the type map associated with the connection.The result set has one row for each element of the SQL array designated by this object, with the first row containing the element at index
index. The result set has up tocountrows in ascending order based on the indices. Each row has two columns: The second column stores the element value; the first column stores the index into the array for that element.- Parameters:
index- the array index of the first element to retrieve; the first element is at index 1count- the number of successive SQL array elements to retrievemap- theMapobject that contains the mapping of SQL type names to classes in the Java(tm) programming language- Returns:
- a
ResultSetobject containing up tocountconsecutive elements of the SQL array designated by thisArrayobject, starting at indexindex. - Throws:
SQLException- if an error occurs while attempting to access the arraySQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.2
-
free
void free() throws SQLException
This method frees theArrayobject and releases the resources that it holds. The object is invalid once thefreemethod is called.After
freehas been called, any attempt to invoke a method other thanfreewill result in aSQLExceptionbeing thrown. Iffreeis called multiple times, the subsequent calls tofreeare treated as a no-op.- Throws:
SQLException- if an error occurs releasing the Array's resourcesSQLFeatureNotSupportedException- if the JDBC driver does not support this method- Since:
- 1.6
-
-