Интерфейс Joinable
- Все известные подинтерфейсы:
- CachedRowSet, FilteredRowSet, JdbcRowSet, JoinRowSet, WebRowSet
public interface Joinable
1.0 Общие сведения
ИнтерфейсJoinable предоставляет методы для получения и установки столбца совпадения, который является основой для формирования SQL JOIN, формируемого путем добавления объектов RowSet в объект JoinRowSet.
Любая стандартная реализация RowSet может реализовывать интерфейс Joinable для добавления в объект JoinRowSet. Реализация этого интерфейса предоставляет объекту RowSet возможность использования методов Joinable, которые устанавливают, извлекают и получают информацию о столбцах совпадения. Приложение может добавить объект RowSet, который не реализовал интерфейс Joinable, в объект JoinRowSet, но для этого необходимо использовать один из методов JoinRowSet.addRowSet, который принимает как объект RowSet, так и столбец совпадения или массив объектов RowSet и массив столбцов совпадения.
Для доступа к методам интерфейса Joinable, объект RowSet реализует по крайней мере один из пяти стандартных интерфейсов RowSet и также реализует интерфейс Joinable. Кроме того, большинство объектов RowSet расширяют класс BaseRowSet. Например:
class MyRowSetImpl extends BaseRowSet implements CachedRowSet, Joinable {
:
:
} 2.0 Руководство по использованию
Методы интерфейса Joinable позволяют объекту RowSet установить столбец совпадения, извлечь столбец совпадения или сбросить столбец совпадения, на основании которого может быть построено SQL JOIN. Экземпляр класса, реализующего эти методы, может быть добавлен в объект JoinRowSet для установления SQL JOIN отношения.
CachedRowSet crs = new MyRowSetImpl();
crs.populate((ResultSet)rs);
(Joinable)crs.setMatchColumnIndex(1);
JoinRowSet jrs = new JoinRowSetImpl();
jrs.addRowSet(crs); В предыдущем примере crs является объектом CachedRowSet, реализующим интерфейс Joinable. В следующем примере crs2 этого не делает, поэтому ему необходимо предоставить столбец совпадения в качестве аргумента методу addRowSet. Этот пример предполагает, что столбец 1 является столбцом совпадения. CachedRowSet crs2 = new MyRowSetImpl();
crs2.populate((ResultSet)rs);
JoinRowSet jrs2 = new JoinRowSetImpl();
jrs2.addRowSet(crs2, 1); Интерфейс JoinRowSet позволяет получить данные из одного или нескольких объектов RowSet, объединенных в одну таблицу, без необходимости создания подключения к базе данных. Поэтому он идеально подходит для использования объектами RowSet без подключения. Тем не менее, любой объект RowSet может реализовать этот интерфейс независимо от того, подключен он или нет. Обратите внимание, что объект JdbcRowSet, всегда подключенный к источнику данных, может стать частью SQL JOIN напрямую, не становясь частью объекта JoinRowSet.
3.0 Управление несколькими столбцами совпадения
Индексный массив, передаваемый в методыsetMatchColumn, указывает количество устанавливаемых столбцов совпадения (длина массива), а также какие столбцы будут использоваться для совпадения. Например: int[] i = {1, 2, 4, 7}; // indicates four match columns, with column
// indexes 1, 2, 4, 7 participating in the JOIN.
Joinable.setMatchColumn(i); Последующие столбцы совпадения могут быть добавлены следующим образом в другой объект Joinable (объект RowSet, реализующий интерфейс Joinable) int[] w = {3, 2, 5, 3};
Joinable2.setMatchColumn(w); Когда приложение добавляет два или более объектов RowSet в объект JoinRowSet, порядок индексов в массиве имеет особое значение. Каждый индекс массива непосредственно соответствует соответствующему индексу ранее добавленного объекта RowSet. Если произойдёт перекрытие или недокрытие, данные столбца совпадения сохраняются на случай добавления дополнительного объекта Joinable RowSet, которому необходимо соотнести данные столбца совпадения. Таким образом, приложения могут устанавливать несколько столбцов совпадения в любом порядке, но этот порядок напрямую влияет на результат SQL SQL JOIN. Это утверждение справедливо и в том случае, если для указания столбцов совпадения используются имена столбцов, а не их индексы.
- См. также:
JoinRowSet
Методы
| Модификатор и тип | Метод и описание |
|---|---|
int[] |
getMatchColumnIndexes() Возвращает индексы столбцов совпадения, установленные для этого объекта |
String[] |
getMatchColumnNames() Возвращает имена столбцов совпадения, установленные для этого объекта |
void |
setMatchColumn(int columnIdx) Устанавливает указанный столбец в качестве столбца совпадения для этого объекта |
void |
setMatchColumn(int[] columnIdxes) Устанавливает указанные столбцы в качестве столбцов совпадения для этого объекта |
void |
setMatchColumn(String columnName) Устанавливает указанный столбец в качестве столбца совпадения для этого объекта |
void |
setMatchColumn(String[] columnNames) Устанавливает указанные столбцы в качестве столбцов совпадения для этого объекта |
void |
unsetMatchColumn(int columnIdx) Сбрасывает указанный столбец как столбец совпадения для этого объекта |
void |
unsetMatchColumn(int[] columnIdxes) Сбрасывает указанные столбцы как столбцы совпадения для этого объекта |
void |
unsetMatchColumn(String columnName) Сбрасывает указанный столбец как столбец совпадения для этого объекта |
void |
unsetMatchColumn(String[] columnName) Сбрасывает указанные столбцы как столбцы совпадения для этого объекта |
Методы
setMatchColumn
void setMatchColumn(int columnIdx)
throws SQLException Устанавливает указанный столбец как столбец соответствия для этого RowSet объекта. Теперь объект JoinRowSet может добавить этот RowSet объект на основе столбца соответствия.
Подинтерфейсы, такие как интерфейс CachedRowSet™, определяют метод CachedRowSet.setKeyColumns, который позволяет применить семантику первичного ключа к определённым столбцам. Реализации метода setMatchColumn(int columnIdx) должны гарантировать, что ограничения на столбцы ключа сохраняются, когда объект CachedRowSet устанавливает столбец первичного ключа как столбец соответствия.
- Параметры:
-
columnIdx- целое число, определяющее индекс столбца, который нужно установить как столбец соответствия - Исключения:
-
SQLException- если установлен некорректный индекс столбца - См. также:
-
setMatchColumn(int[]),unsetMatchColumn(int)
setMatchColumn
void setMatchColumn(int[] columnIdxes)
throws SQLException Устанавливает указанные столбцы как столбцы соответствия для этого RowSet объекта. Теперь объект JoinRowSet может добавить этот RowSet объект на основе столбцов соответствия.
- Параметры:
-
columnIdxes- массив целых чисел, определяющих индексы столбцов, которые нужно установить как столбцы соответствия - Исключения:
-
SQLException- если установлен некорректный индекс столбца - См. также:
-
setMatchColumn(int[]),unsetMatchColumn(int[])
setMatchColumn
void setMatchColumn(String columnName)
throws SQLException Устанавливает указанный столбец как столбец соответствия для этого RowSet объекта. Теперь объект JoinRowSet может добавить этот RowSet объект на основе столбца соответствия.
Подинтерфейсы, такие как интерфейс CachedRowSet определяют метод CachedRowSet.setKeyColumns, который позволяет применить семантику первичного ключа к определённым столбцам. Реализации метода setMatchColumn(String columnIdx) должны гарантировать, что ограничения на столбцы ключа сохраняются, когда объект CachedRowSet устанавливает столбец первичного ключа как столбец соответствия.
- Параметры:
-
columnName- объект типа String, содержащий имя столбца, который нужно установить как столбец соответствия - Исключения:
-
SQLException- если установлено некорректное имя столбца, имя столбца null или пустая строка - См. также:
-
unsetMatchColumn(int),setMatchColumn(int[])
setMatchColumn
void setMatchColumn(String[] columnNames)
throws SQLException Устанавливает указанные столбцы как столбцы соответствия для этого RowSet объекта. Теперь объект JoinRowSet может добавить этот RowSet объект на основе столбцов соответствия.
- Параметры:
-
columnNames- массив объектов String, содержащих имена столбцов, которые нужно установить как столбцы соответствия - Исключения:
-
SQLException- если установлено некорректное имя столбца, имя столбца null или пустая строка - См. также:
-
unsetMatchColumn(int),setMatchColumn(int[])
getMatchColumnIndexes
int[] getMatchColumnIndexes()
throws SQLException Возвращает индексы столбцов соответствия, установленные для этого RowSet объекта методом setMatchColumn(int[] columnIdxes).
- Возвращает:
- массив целых чисел, определяющий индексы столбцов, установленных как столбцы соответствия для этого
RowSetобъекта - Исключения:
-
SQLException- если столбец соответствия не был установлен - См. также:
-
setMatchColumn(int),unsetMatchColumn(int)
getMatchColumnNames
String[] getMatchColumnNames()
throws SQLException Возвращает имена столбцов соответствия, установленных для этого RowSet объекта методом setMatchColumn(String [] columnNames).
- Возвращает:
- массив объектов String, содержащих имена столбцов, установленных как столбцы соответствия для этого
RowSetобъекта - Исключения:
-
SQLException- если столбец соответствия не был установлен - См. также:
-
setMatchColumn(int),unsetMatchColumn(int)
unsetMatchColumn
void unsetMatchColumn(int columnIdx)
throws SQLException Снимает указанный столбец как столбец соответствия для этого RowSet объекта.
Объекты RowSet, реализующие интерфейс Joinable, должны гарантировать, что ограничение типа "ключ" продолжает выполняться до вызова метода CachedRowSet.unsetKeyColumns для указанного столбца.
- Параметры:
-
columnIdx- целое число, определяющее индекс столбца, который нужно снять как столбец соответствия - Исключения:
-
SQLException- если указан некорректный индекс столбца или если указанный столбец ранее не был установлен как столбец соответствия - См. также:
setMatchColumn(int)
unsetMatchColumn
void unsetMatchColumn(int[] columnIdxes)
throws SQLException Снимает указанные столбцы как столбцы соответствия для этого RowSet объекта.
- Параметры:
-
columnIdxes- массив целых чисел, определяющих индексы столбцов, которые нужно снять как столбцы соответствия - Исключения:
-
SQLException- если указан некорректный индекс столбца или если указанный столбец ранее не был установлен как столбец соответствия - См. также:
setMatchColumn(int)
unsetMatchColumn
void unsetMatchColumn(String columnName)
throws SQLException Снимает указанный столбец как столбец соответствия для этого RowSet объекта.
Объекты RowSet, реализующие интерфейс Joinable, должны гарантировать, что ограничение типа "ключ" продолжает выполняться до вызова метода CachedRowSet.unsetKeyColumns для указанного столбца.
- Параметры:
-
columnName- объект типа String, содержащий имя столбца, который нужно снять как столбец соответствия - Исключения:
-
SQLException- если указано некорректное имя столбца или если указанный столбец ранее не был установлен как столбец соответствия - См. также:
setMatchColumn(int)
unsetMatchColumn
void unsetMatchColumn(String[] columnName)
throws SQLException Снимает указанные столбцы как столбцы соответствия для этого RowSet объекта.
- Параметры:
-
columnName- массив объектов String, содержащих имена столбцов, которые нужно снять как столбцы соответствия - Исключения:
-
SQLException- если указано некорректное имя столбца или если указанный столбец ранее не был установлен как столбец соответствия - См. также:
setMatchColumn(int)
© 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.