Интерфейс Array
- Все известные реализующие классы:
SerialArray
public interface Array
Сопоставление в языке программирования Java для типа SQL ARRAY. По умолчанию значение Array — ссылка на значение SQL ARRAY на срок действия транзакции. По умолчанию объект Array реализуется с помощью внутреннего SQL LOCATOR(array), что означает, что объект Array содержит логическую ссылку на данные в значении SQL ARRAY, а не содержит данные значения ARRAY.
Интерфейс Array предоставляет методы для извлечения данных значения SQL ARRAY на клиентскую сторону в виде массива или объекта ResultSet. Если элементы SQL ARRAY — UDT, они могут быть настраиваемо отображены. Для создания настраиваемого отображения программисту необходимо сделать два шага:
- создать класс, реализующий интерфейс
SQLDataдля UDT, подлежащего настраиваемому отображению. - создать запись в таблице типов, содержащую
- полное имя типа SQL UDT
- объект
Classдля класса, реализующегоSQLData
При предоставлении таблицы типов со записью для базового типа методам getArray и getResultSet, для отображения элементов значения ARRAY будет использоваться сопоставление, содержащееся в ней. Если таблица типов не предоставляется, что обычно и происходит, по умолчанию используется таблица типов подключения. Если в таблице типов подключения или предоставленной в метод таблице типов нет записи для базового типа, элементы отображаются в соответствии с стандартным отображением.
Все методы интерфейса Array должны быть полностью реализованы, если драйвер JDBC поддерживает тип данных.
- С:
- 1.2
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | free() | Этот метод освобождает объект |
Object | getArray() | Извлекает содержимое значения SQL |
Object | getArray(long index,
int count) | Извлекает фрагмент значения SQL |
Object | getArray(long index,
int count,
Map<String,Class<?>> map) | Извлекает фрагмент значения SQL |
Object | getArray(Map<String,Class<?>> map) | Извлекает содержимое значения SQL |
int | getBaseType() | Извлекает тип JDBC элементов в массиве, обозначенном этим объектом |
String | getBaseTypeName() | Извлекает имя типа SQL элементов в массиве, обозначенном этим объектом |
ResultSet | getResultSet() | Извлекает набор результатов, содержащий элементы значения SQL |
ResultSet | getResultSet(long index,
int count) | Извлекает набор результатов, содержащий элементы подмассива, начинающегося с индекса |
ResultSet | getResultSet(long index,
int count,
Map<String,Class<?>> map) | Извлекает набор результатов, содержащий элементы подмассива, начинающегося с индекса |
ResultSet | getResultSet(Map<String,Class<?>> map) | Извлекает набор результатов, содержащий элементы значения SQL |
Методы
getBaseTypeName
String getBaseTypeName()
throws SQLException Возвращает имя SQL-типа элементов в массиве, обозначенном этим Array объектом. Если элементы — встроенного типа, возвращается имя типа, специфичное для базы данных. Если элементы — пользовательского типа (UDT), метод возвращает полное квалифицированное имя SQL-типа.
- Возвращает:
- строку, представляющую собой имя типа, специфичное для базы данных, для встроенного базового типа; или полное квалифицированное имя SQL-типа для базового типа, являющегося UDT
- Бросает:
-
SQLException- если при попытке получить имя типа произошла ошибка -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С тех пор:
- 1.2
getBaseType
int getBaseType()
throws SQLException Возвращает JDBC-тип элементов в массиве, обозначенном этим Array объектом.
- Возвращает:
- константу из класса
Types, представляющую собой код типа элементов в массиве, обозначенном этимArrayобъектом - Бросает:
-
SQLException- если при попытке получить базовый тип произошла ошибка -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С тех пор:
- 1.2
getArray
Object getArray()
throws SQLException Возвращает содержимое SQL-значения ARRAY , обозначенного этим Array объектом, в виде массива на языке программирования Java. Этот вариант метода getArray использует карту типов, связанную с подключением, для настроек сопоставлений типов.
Примечание: Когда getArray используется для материализации базового типа, отображающегося в примитивный тип данных, то определяется реализацией, будет ли возвращаемый массив массивом этого примитивного типа данных или массивом Object.
- Возвращает:
- массив на языке программирования Java, содержащий упорядоченные элементы SQL-значения
ARRAY, обозначенного этимArrayобъектом - Бросает:
-
SQLException- если при попытке получить массив произошла ошибка -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С тех пор:
- 1.2
getArray
Object getArray(Map<String,Class<?>> map)
throws SQLException Возвращает содержимое SQL-значения ARRAY , обозначенного этим Array объектом. Этот метод использует указанную map карту типов для настройки сопоставлений типов, если базовый тип массива не соответствует пользовательскому типу в map, в противном случае используется стандартное сопоставление. Этот вариант метода getArray использует либо заданную карту типов, либо стандартное сопоставление; он никогда не использует карту типов, связанную с подключением.
Примечание: Когда getArray используется для материализации базового типа, отображающегося в примитивный тип данных, то определяется реализацией, будет ли возвращаемый массив массивом этого примитивного типа данных или массивом Object.
- Параметры:
-
map- объектjava.util.Map, содержащий сопоставления имён SQL-типов с классами на языке программирования Java - Возвращает:
- массив на языке программирования Java, содержащий упорядоченные элементы SQL-массива, обозначенного этим объектом
- Бросает:
-
SQLException- если при попытке получить массив произошла ошибка -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С тех пор:
- 1.2
getArray
Object getArray(long index,
int count)
throws SQLException Возвращает фрагмент SQL-значения ARRAY , обозначенного этим Array объектом, начиная с указанного index и содержащего до count последовательных элементов SQL-массива. Этот метод использует карту типов, связанную с подключением, для настройки сопоставлений типов.
Примечание: Когда getArray используется для материализации базового типа, отображающегося в примитивный тип данных, то определяется реализацией, будет ли возвращаемый массив массивом этого примитивного типа данных или массивом Object.
- Параметры:
-
index- индекс массива первого элемента для извлечения; первый элемент находится под индексом 1 -
count- количество последовательных элементов SQL-массива для извлечения - Возвращает:
- массив, содержащий до
countпоследовательных элементов SQL-массива, начиная с элементаindex - Бросает:
-
SQLException- если при попытке получить массив произошла ошибка -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С тех пор:
- 1.2
getArray
Object getArray(long index,
int count,
Map<String,Class<?>> map)
throws SQLException Возвращает фрагмент SQL-значения ARRAY , обозначенного этим Array объектом, начиная с указанного index и содержащего до count последовательных элементов SQL-массива.
Этот метод использует указанную map карту типов для настройки сопоставлений типов, если базовый тип массива не соответствует пользовательскому типу в map, в противном случае используется стандартное сопоставление. Этот вариант метода getArray использует либо заданную карту типов, либо стандартное сопоставление; он никогда не использует карту типов, связанную с подключением.
Примечание: Когда getArray используется для материализации базового типа, отображающегося в примитивный тип данных, то определяется реализацией, будет ли возвращаемый массив массивом этого примитивного типа данных или массивом Object.
- Параметры:
-
index- индекс массива первого элемента для извлечения; первый элемент находится под индексом 1 -
count- количество последовательных элементов SQL-массива для извлечения -
map- объектjava.util.Map, содержащий имена SQL-типов и классы на языке программирования Java, которым они сопоставлены - Возвращает:
- массив, содержащий до
countпоследовательных элементов SQL-значенияARRAY, обозначенного этимArrayобъектом, начиная с элементаindex - Бросает:
-
SQLException- если при попытке получить массив произошла ошибка -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С тех пор:
- 1.2
getResultSet
ResultSet getResultSet()
throws SQLException Возвращает набор результатов, содержащий элементы SQL-значения ARRAY , обозначенного этим Array объектом. Если применимо, элементы массива сопоставляются с помощью карты типов подключения; в противном случае используется стандартное сопоставление.
Набор результатов содержит одну строку для каждого элемента массива, с двумя столбцами в каждой строке. Второй столбец хранит значение элемента; первый столбец хранит индекс элемента в массиве (при этом первый элемент массива имеет индекс 1). Строки упорядочены по возрастанию, соответствуя порядку индексов.
- Возвращает:
- объект
ResultSet, содержащий по одной строке для каждого элемента в массиве, обозначенном этимArrayобъектом, с упорядоченными строками по возрастанию индексов. - Бросает:
-
SQLException- если при попытке получить массив произошла ошибка -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С тех пор:
- 1.2
getResultSet
ResultSet getResultSet(Map<String,Class<?>> map)
throws SQLException Возвращает набор результатов, содержащий элементы SQL-значения ARRAY , обозначенного этим Array объектом. Этот метод использует указанную map карту типов для настройки сопоставлений типов, если базовый тип массива не соответствует пользовательскому типу в map, в противном случае используется стандартное сопоставление. Этот вариант метода getResultSet использует либо заданную карту типов, либо стандартное сопоставление; он никогда не использует карту типов, связанную с подключением.
Набор результатов содержит одну строку для каждого элемента массива, с двумя столбцами в каждой строке. Второй столбец хранит значение элемента; первый столбец хранит индекс элемента в массиве (при этом первый элемент массива имеет индекс 1). Строки упорядочены по возрастанию, соответствуя порядку индексов.
- Параметры:
-
map- содержит сопоставление SQL-пользовательских типов с классами на языке программирования Java - Возвращает:
- объект
ResultSet, содержащий по одной строке для каждого элемента в массиве, обозначенном этимArrayобъектом, с упорядоченными строками по возрастанию индексов. - Бросает:
-
SQLException- если при попытке получить массив произошла ошибка -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С тех пор:
- 1.2
getResultSet
ResultSet getResultSet(long index,
int count)
throws SQLException Возвращает набор результатов, содержащий элементы подмассива, начинающегося с индекса index и содержащего до count последовательных элементов. Этот метод использует карту типов подключения для сопоставления элементов массива, если карта содержит запись для базового типа. В противном случае используется стандартное сопоставление.
Набор результатов имеет одну строку для каждого элемента SQL-массива, обозначенного этим объектом, при этом первая строка содержит элемент с индексом index. Набор результатов содержит до count строк в порядке возрастания индексов. Каждая строка имеет два столбца: второй столбец хранит значение элемента, а первый столбец — индекс элемента в массиве.
- Параметры:
-
index- индекс массива первого элемента для извлечения; первый элемент находится под индексом 1 -
count- количество последовательных элементов SQL-массива для извлечения - Возвращает:
- объект
ResultSet, содержащий доcountпоследовательных элементов SQL-массива, обозначенного этимArrayобъектом, начиная с индексаindex - Бросает:
-
SQLException- если при попытке получить массив произошла ошибка -
SQLFeatureNotSupportedException- если JDBC-драйвер не поддерживает этот метод - С тех пор:
- 1.2
getResultSet
ResultSet getResultSet(long index,
int count,
Map<String,Class<?>> map)
throws SQLException Извлекает результат, содержащий элементы подмассива, начинающегося с индекса index и содержащего до count последовательных элементов. Этот метод использует указанную map для настройки преобразования типов, если базовый тип массива не соответствует определенному пользователем типу в map, в противном случае используется стандартное преобразование. Эта версия метода getResultSet использует либо заданное преобразование типов, либо стандартное преобразование; она никогда не использует преобразование типов, связанное с подключением.
Результат содержит одну строку для каждого элемента SQL-массива, обозначенного этим объектом, причем первая строка содержит элемент с индексом index. Результат содержит до count строк в порядке возрастания индексов. Каждая строка имеет два столбца: второй столбец хранит значение элемента, а первый — индекс в массиве для этого элемента.
- Параметры:
-
index- индекс массива первого извлекаемого элемента; первый элемент имеет индекс 1 -
count- количество последовательных элементов SQL-массива для извлечения -
map- объектMap, содержащий сопоставление имен типов SQL с классами языка программирования Java(tm) - Возвращает:
- объект
ResultSet, содержащий доcountпоследовательных элементов SQL-массива, обозначенного этим объектомArray, начиная с индексаindex. - Исключения:
-
SQLException- если при попытке доступа к массиву произошла ошибка -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С:
- 1.2
free
void free() throws SQLException
Этот метод освобождает объект Array и высвобождает занимаемые им ресурсы. Объект считается недействительным после вызова метода free.
После вызова free любая попытка вызвать метод, отличный от free, приведет к сбрасыванию исключения SQLException. Если free вызывается несколько раз, последующие вызовы free обрабатываются как бесполезные действия.
- Исключения:
-
SQLException- если при освобождении ресурсов массива произошла ошибка -
SQLFeatureNotSupportedException- если драйвер JDBC не поддерживает этот метод - С:
- 1.6
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/Array.html