Top Description Fields Constructors Methods
org.hsqldb.jdbc

public Class JDBCArrayBasic

extends Object
implements Array
Class Inheritance
All Implemented Interfaces
java.sql.Array, java.lang.AutoCloseable
Imports
java.sql.Array, .ResultSet, .SQLException, org.hsqldb.ColumnBase, org.hsqldb.navigator.RowSetNavigatorClient, org.hsqldb.result.Result, .ResultMetaData, org.hsqldb.types.Type

The mapping in the Java programming language for the SQL type ARRAY. By default, an Array value is a transaction-duration reference to an SQL ARRAY value. By default, an Array object is implemented using an SQL LOCATOR(array) internally, which means that an Array object contains a logical pointer to the data in the SQL ARRAY value rather than containing the ARRAY value's data.

The Array interface provides methods for bringing an SQL ARRAY value's data to the client as either an array or a ResultSet object. If the elements of the SQL ARRAY are a UDT, they may be custom mapped. To create a custom mapping, a programmer must do two things:

When a type map with an entry for the base type is supplied to the methods getArray and getResultSet, the mapping it contains will be used to map the elements of the ARRAY value. 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 Array interface must be fully implemented if the JDBC driver supports the data type.

Author
Fred Toussi (fredt@users dot sourceforge.net)
Since
JDK 1.2, HSQLDB 2.0.1
Version
2.7.3

Field Summary

Modifier and TypeField and Description
pack-priv Type
pack-priv Object[]
pack-priv Type

Constructor Summary

AccessConstructor and Description
public
JDBCArrayBasic(Object[]
the Object[]
data
,
Type
the HSQLDB org.hsqldb.types.Type object
type
)

Public constructor to create an Array object from an Object[] and an HSQLDB org.hsqldb.types.Type object.

Method Summary

Modifier and TypeMethod and Description
private void
public void
free()

Implements java.sql.Array.free.

This method frees the Array object and releases the resources that it holds.

public Object

Returns:

an array in the Java programming language that contains the ordered elements of the SQL ARRAY value designated by this Array object
getArray
()

Implements java.sql.Array.getArray.

Retrieves the contents of the SQL ARRAY value designated by this Array object in the form of an array in the Java programming language.

public Object

Returns:

an array in the Java programming language that contains the ordered elements of the SQL array designated by this object
getArray
(Map<String, Class<?>>
a java.util.Map object that contains mappings of SQL type names to classes in the Java programming language
map
)

Implements java.sql.Array.getArray.

Retrieves the contents of the SQL ARRAY value designated by this Array object.

public Object

Returns:

an array containing up to count consecutive elements of the SQL array, beginning with element index
getArray
(long
the array index of the first element to retrieve; the first element is at index 1
index
,
int
the number of successive SQL array elements to retrieve
count
)

Implements java.sql.Array.getArray.

Retrieves a slice of the SQL ARRAY value designated by this Array object, beginning with the specified index and containing up to count successive elements of the SQL array.

public Object

Returns:

an array containing up to count consecutive elements of the SQL ARRAY value designated by this Array object, beginning with element index
getArray
(long
the array index of the first element to retrieve; the first element is at index 1
index
,
int
the number of successive SQL array elements to retrieve
count
,
Map<String, Class<?>>
a java.util.Map object that contains SQL type names and the classes in the Java programming language to which they are mapped
map
)

Implements java.sql.Array.getArray.

Retrieves a slice of the SQL ARRAY value designated by this Array object, beginning with the specified index and containing up to count successive elements of the SQL array.

pack-priv Object[]
public int

Returns:

a constant from the class java.sql.Types that is the type code for the elements in the array designated by this Array object
getBaseType
()

Implements java.sql.Array.getBaseType.

Retrieves the JDBC type of the elements in the array designated by this Array object.

public String

Returns:

a String that 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
getBaseTypeName
()

Implements java.sql.Array.getBaseTypeName.

Retrieves the SQL type name of the elements in the array designated by this Array object.

public ResultSet

Returns:

a ResultSet object containing one row for each of the elements in the array designated by this Array object, with the rows in ascending order based on the indices.
getResultSet
()

Implements java.sql.Array.getResultSet.

Retrieves a result set that contains the elements of the SQL ARRAY value designated by this Array object.

public ResultSet

Returns:

a ResultSet object containing one row for each of the elements in the array designated by this Array object, with the rows in ascending order based on the indices.
getResultSet
(Map<String, Class<?>>
contains the mapping of SQL user-defined types to classes in the Java programming language
map
)

Implements java.sql.Array.getResultSet.

Retrieves a result set that contains the elements of the SQL ARRAY value designated by this Array object.

public ResultSet

Returns:

a ResultSet object containing up to count consecutive elements of the SQL array designated by this Array object, starting at index index.
getResultSet
(long
the array index of the first element to retrieve; the first element is at index 1
index
,
int
the number of successive SQL array elements to retrieve
count
)

Implements java.sql.Array.getResultSet.

Retrieves a result set holding the elements of the subarray that starts at index index and contains up to count successive elements.

public ResultSet

Returns:

a ResultSet object containing up to count consecutive elements of the SQL array designated by this Array object, starting at index index.
getResultSet
(long
the array index of the first element to retrieve; the first element is at index 1
index
,
int
the number of successive SQL array elements to retrieve
count
,
Map<String, Class<?>>
the Map object that contains the mapping of SQL type names to classes in the Java(tm) programming language
map
)

Implements java.sql.Array.getResultSet.

Retrieves a result set holding the elements of the subarray that starts at index index and contains up to count successive elements.

private Result
newColumnResult(long position, int count)

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation in the form ARRAY[..., ...]

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

arrayTypeback to summary
pack-priv Type arrayType
databack to summary
pack-priv Object[] data
elementTypeback to summary
pack-priv Type elementType

Constructor Detail

JDBCArrayBasicback to summary
public JDBCArrayBasic(Object[] data, Type type)

Public constructor to create an Array object from an Object[] and an HSQLDB org.hsqldb.types.Type object.

Parameters
data:Object[]

the Object[]

type:Type

the HSQLDB org.hsqldb.types.Type object

Method Detail

checkClosedback to summary
private void checkClosed() throws SQLException
freeback to summary
public void free() throws SQLException

Implements java.sql.Array.free.

This method frees the Array object and releases the resources that it holds. The object is invalid once the free method is called.

After free has been called, any attempt to invoke a method other than free will result in a SQLException being thrown. If free is called multiple times, the subsequent calls to free are treated as a no-op.

Exceptions
SQLException:
if an error occurs releasing the Array's resources
Since
JDK 1.6
getArrayback to summary
public Object getArray()

Implements java.sql.Array.getArray.

Retrieves the contents of the SQL ARRAY value designated by this Array object in the form of an array in the Java programming language. This version of the method getArray uses the type map associated with the connection for customizations of the type mappings.

Note

When getArray is 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 of Object.

HSQLDB-Specific Information:

HSQLDB always returns an array of Object.
Returns:Object

an array in the Java programming language that contains the ordered elements of the SQL ARRAY value designated by this Array object

Since
JDK 1.2
getArrayback to summary
public Object getArray(Map<String, Class<?>> map) throws SQLException

Implements java.sql.Array.getArray.

Retrieves the contents of the SQL ARRAY value designated by this Array object. This method uses the specified map for type map customizations unless the base type of the array does not match a user-defined type in map, in which case it uses the standard mapping. This version of the method getArray uses either the given type map or the standard mapping; it never uses the type map associated with the connection.

Note

When getArray is 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 of Object.

HSQLDB-Specific Information:

HSQLDB always returns an array of Object.
Parameters
map:Map<String, Class<?>>

a java.util.Map object that contains mappings of SQL type names to classes in the Java programming language

Returns:Object

an array in the Java programming language that contains the ordered elements of the SQL array designated by this object

Exceptions
SQLException:
if an error occurs while attempting to access the array
Since
JDK 1.2
getArrayback to summary
public Object getArray(long index, int count) throws SQLException

Implements java.sql.Array.getArray.

Retrieves a slice of the SQL ARRAY value designated by this Array object, beginning with the specified index and containing up to count successive elements of the SQL array. This method uses the type map associated with the connection for customizations of the type mappings.

Note

When getArray is 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 of Object.

HSQLDB-Specific Information:

HSQLDB always returns an array of Object.
Parameters
index:long

the array index of the first element to retrieve; the first element is at index 1

count:int

the number of successive SQL array elements to retrieve

Returns:Object

an array containing up to count consecutive elements of the SQL array, beginning with element index

Exceptions
SQLException:
if an error occurs while attempting to access the array
Since
JDK 1.2
getArrayback to summary
public Object getArray(long index, int count, Map<String, Class<?>> map) throws SQLException

Implements java.sql.Array.getArray.

Retrieves a slice of the SQL ARRAY value designated by this Array object, beginning with the specified index and containing up to count successive elements of the SQL array.

This method uses the specified map for type map customizations unless the base type of the array does not match a user-defined type in map, in which case it uses the standard mapping. This version of the method getArray uses either the given type map or the standard mapping; it never uses the type map associated with the connection.

Note

When getArray is 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 of Object.

HSQLDB-Specific Information:

HSQLDB always returns an array of Object.
Parameters
index:long

the array index of the first element to retrieve; the first element is at index 1

count:int

the number of successive SQL array elements to retrieve

map:Map<String, Class<?>>

a java.util.Map object that contains SQL type names and the classes in the Java programming language to which they are mapped

Returns:Object

an array containing up to count consecutive elements of the SQL ARRAY value designated by this Array object, beginning with element index

Exceptions
SQLException:
if an error occurs while attempting to access the array
Since
JDK 1.2
getArrayInternalback to summary
pack-priv Object[] getArrayInternal()
getBaseTypeback to summary
public int getBaseType() throws SQLException

Implements java.sql.Array.getBaseType.

Retrieves the JDBC type of the elements in the array designated by this Array object.

Returns:int

a constant from the class java.sql.Types that is the type code for the elements in the array designated by this Array object

Exceptions
SQLException:
if an error occurs while attempting to access the base type
Since
JDK 1.2
getBaseTypeNameback to summary
public String getBaseTypeName() throws SQLException

Implements java.sql.Array.getBaseTypeName.

Retrieves the SQL type name of the elements in the array designated by this Array object. 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:String

a String that 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

Exceptions
SQLException:
if an error occurs while attempting to access the type name
Since
JDK 1.2
getResultSetback to summary
public ResultSet getResultSet() throws SQLException

Implements java.sql.Array.getResultSet.

Retrieves a result set that contains the elements of the SQL ARRAY value designated by this Array object. 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:ResultSet

a ResultSet object containing one row for each of the elements in the array designated by this Array object, with the rows in ascending order based on the indices.

Exceptions
SQLException:
if an error occurs while attempting to access the array
Since
JDK 1.2
getResultSetback to summary
public ResultSet getResultSet(Map<String, Class<?>> map) throws SQLException

Implements java.sql.Array.getResultSet.

Retrieves a result set that contains the elements of the SQL ARRAY value designated by this Array object. This method uses the specified map for type map customizations unless the base type of the array does not match a user-defined type in map, in which case it uses the standard mapping. This version of the method getResultSet uses 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:Map<String, Class<?>>

contains the mapping of SQL user-defined types to classes in the Java programming language

Returns:ResultSet

a ResultSet object containing one row for each of the elements in the array designated by this Array object, with the rows in ascending order based on the indices.

Exceptions
SQLException:
if an error occurs while attempting to access the array
Since
JDK 1.2
getResultSetback to summary
public ResultSet getResultSet(long index, int count) throws SQLException

Implements java.sql.Array.getResultSet.

Retrieves a result set holding the elements of the subarray that starts at index index and contains up to count successive 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 to count rows 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:long

the array index of the first element to retrieve; the first element is at index 1

count:int

the number of successive SQL array elements to retrieve

Returns:ResultSet

a ResultSet object containing up to count consecutive elements of the SQL array designated by this Array object, starting at index index.

Exceptions
SQLException:
if an error occurs while attempting to access the array
Since
JDK 1.2
getResultSetback to summary
public ResultSet getResultSet(long index, int count, Map<String, Class<?>> map) throws SQLException

Implements java.sql.Array.getResultSet.

Retrieves a result set holding the elements of the subarray that starts at index index and contains up to count successive elements. This method uses the specified map for type map customizations unless the base type of the array does not match a user-defined type in map, in which case it uses the standard mapping. This version of the method getResultSet uses 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 to count rows 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:long

the array index of the first element to retrieve; the first element is at index 1

count:int

the number of successive SQL array elements to retrieve

map:Map<String, Class<?>>

the Map object that contains the mapping of SQL type names to classes in the Java(tm) programming language

Returns:ResultSet

a ResultSet object containing up to count consecutive elements of the SQL array designated by this Array object, starting at index index.

Exceptions
SQLException:
if an error occurs while attempting to access the array
Since
JDK 1.2
newColumnResultback to summary
private Result newColumnResult(long position, int count) throws SQLException
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Returns a string representation in the form ARRAY[..., ...]