public class PgArray extends Object implements Array
Array is used collect one column of query result data.
Read a field of type Array into either a natively-typed Java array object or a ResultSet. Accessor methods provide the ability to capture array slices.
Other than the constructor all methods are direct implementations of those specified for java.sql.Array. Please refer to the javadoc for java.sql.Array for detailed descriptions of the functionality and parameters of the methods of this class.
ResultSet.getArray(int)
Modifier and Type | Field and Description |
---|---|
protected org.postgresql.jdbc.PgArray.PgArrayList |
arrayList
Value of field as
PgArrayList . |
protected BaseConnection |
connection
A database connection.
|
protected byte[] |
fieldBytes |
protected String |
fieldString
Field value as String.
|
Constructor and Description |
---|
PgArray(BaseConnection connection,
int oid,
byte[] fieldBytes)
Create a new Array.
|
PgArray(BaseConnection connection,
int oid,
String fieldString)
Create a new Array.
|
Modifier and Type | Method and Description |
---|---|
static void |
escapeArrayElement(StringBuilder b,
String s) |
void |
free()
This method frees the
Array object and releases the resources that
it holds. |
Object |
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. |
Object |
getArray(long index,
int count)
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. |
Object |
getArray(long index,
int count,
Map<String,Class<?>> map)
Retreives 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. |
Object |
getArray(Map<String,Class<?>> map)
Retrieves the contents of the SQL
ARRAY value designated by this
Array object. |
Object |
getArrayImpl(long index,
int count,
Map<String,Class<?>> map) |
Object |
getArrayImpl(Map<String,Class<?>> map) |
int |
getBaseType()
Retrieves the JDBC type of the elements in the array designated
by this
Array object. |
String |
getBaseTypeName()
Retrieves the SQL type name of the elements in
the array designated by this
Array object. |
ResultSet |
getResultSet()
Retrieves a result set that contains the elements of the SQL
ARRAY value
designated by this Array object. |
ResultSet |
getResultSet(long index,
int count)
Retrieves a result set holding the elements of the subarray that
starts at index
index and contains up to
count successive elements. |
ResultSet |
getResultSet(long index,
int count,
Map<String,Class<?>> map)
Retrieves a result set holding the elements of the subarray that
starts at index
index and contains up to
count successive elements. |
ResultSet |
getResultSet(Map<String,Class<?>> map)
Retrieves a result set that contains the elements of the SQL
ARRAY value designated by this Array object. |
ResultSet |
getResultSetImpl(long index,
int count,
Map<String,Class<?>> map) |
ResultSet |
getResultSetImpl(Map<String,Class<?>> map) |
boolean |
isBinary() |
byte[] |
toBytes() |
String |
toString() |
protected BaseConnection connection
protected String fieldString
protected org.postgresql.jdbc.PgArray.PgArrayList arrayList
PgArrayList
. Will be initialized only once within
buildArrayList()
.protected byte[] fieldBytes
public PgArray(BaseConnection connection, int oid, String fieldString) throws SQLException
connection
- a database connectionoid
- the oid of the array datatypefieldString
- the array data in string formSQLException
- if something wrong happenspublic PgArray(BaseConnection connection, int oid, byte[] fieldBytes) throws SQLException
connection
- a database connectionoid
- the oid of the array datatypefieldBytes
- the array data in byte formSQLException
- if something wrong happenspublic Object getArray() throws SQLException
java.sql.Array
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
.
getArray
in interface Array
ARRAY
value
designated by this Array
objectSQLException
- if an error occurs while attempting to
access the arraySQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic Object getArray(long index, int count) throws SQLException
java.sql.Array
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
.
getArray
in interface Array
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 retrievecount
consecutive elements
of the SQL array, beginning with element index
SQLException
- if an error occurs while attempting to
access the arraySQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic Object getArrayImpl(Map<String,Class<?>> map) throws SQLException
SQLException
public Object getArray(Map<String,Class<?>> map) throws SQLException
java.sql.Array
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
.
getArray
in interface Array
map
- a java.util.Map
object that contains mappings
of SQL type names to classes in the Java programming languageSQLException
- if an error occurs while attempting to
access the arraySQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic Object getArray(long index, int count, Map<String,Class<?>> map) throws SQLException
java.sql.Array
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
.
getArray
in interface Array
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
- a java.util.Map
object
that contains SQL type names and the classes in
the Java programming language to which they are mappedcount
consecutive elements of the SQL ARRAY
value designated by this
Array
object, beginning with element
index
SQLException
- if an error occurs while attempting to
access the arraySQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic Object getArrayImpl(long index, int count, Map<String,Class<?>> map) throws SQLException
SQLException
public int getBaseType() throws SQLException
java.sql.Array
Array
object.getBaseType
in interface Array
Types
that is
the type code for the elements in the array designated by this
Array
objectSQLException
- if an error occurs while attempting
to access the base typeSQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic String getBaseTypeName() throws SQLException
java.sql.Array
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.getBaseTypeName
in interface Array
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 UDTSQLException
- if an error occurs while attempting
to access the type nameSQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic ResultSet getResultSet() throws SQLException
java.sql.Array
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.
getResultSet
in interface Array
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.SQLException
- if an error occurs while attempting to
access the arraySQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic ResultSet getResultSet(long index, int count) throws SQLException
java.sql.Array
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.
getResultSet
in interface Array
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 retrieveResultSet
object containing up to
count
consecutive elements of the SQL array
designated by this Array
object, starting at
index index
.SQLException
- if an error occurs while attempting to
access the arraySQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic ResultSet getResultSet(Map<String,Class<?>> map) throws SQLException
java.sql.Array
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.
getResultSet
in interface Array
map
- contains the mapping of SQL user-defined types to
classes in the Java programming languageResultSet
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.SQLException
- if an error occurs while attempting to
access the arraySQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic ResultSet getResultSet(long index, int count, Map<String,Class<?>> map) throws SQLException
java.sql.Array
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.
getResultSet
in interface Array
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
- the Map
object that contains the mapping
of SQL type names to classes in the Java(tm) programming languageResultSet
object containing up to
count
consecutive elements of the SQL array
designated by this Array
object, starting at
index index
.SQLException
- if an error occurs while attempting to
access the arraySQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic ResultSet getResultSetImpl(Map<String,Class<?>> map) throws SQLException
SQLException
public ResultSet getResultSetImpl(long index, int count, Map<String,Class<?>> map) throws SQLException
SQLException
public static void escapeArrayElement(StringBuilder b, String s)
public boolean isBinary()
public byte[] toBytes()
public void free() throws SQLException
java.sql.Array
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.
free
in interface Array
SQLException
- if an error occurs releasing
the Array's resourcesSQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodCopyright © 2019 PostgreSQL Global Development Group. All rights reserved.