Интерфейс 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 и необходимости связать их с данными столбца сопоставления. Таким образом, приложения могут устанавливать несколько столбцов сопоставления в любом порядке, но этот порядок напрямую влияет на результат объединения SQL JOIN.

Это утверждение применяется в точности так же, когда для указания столбцов сопоставления используются имена столбцов, а не индексы столбцов.

С:
1.5
См. также:
JoinRowSet

Методы

Модификатор и тип Метод Описание
int[] getMatchColumnIndexes()

Возвращает индексы столбцов сопоставления, которые были установлены для этого объекта RowSet методом setMatchColumn(int[] columnIdxes).

String[] getMatchColumnNames()

Возвращает имена столбцов сопоставления, которые были установлены для этого объекта RowSet методом setMatchColumn(String [] columnNames).

void setMatchColumn​(int columnIdx)

Устанавливает указанный столбец в качестве столбца сопоставления для этого объекта RowSet.

void setMatchColumn​(int[] columnIdxes)

Устанавливает указанные столбцы в качестве столбца сопоставления для этого объекта RowSet.

void setMatchColumn​(String columnName)

Устанавливает указанный столбец в качестве столбца сопоставления для этого объекта RowSet.

void setMatchColumn​(String[] columnNames)

Устанавливает указанные столбцы в качестве столбцов сопоставления для этого объекта RowSet.

void unsetMatchColumn​(int columnIdx)

Сбрасывает указанный столбец в качестве столбца сопоставления для этого объекта RowSet.

void unsetMatchColumn​(int[] columnIdxes)

Сбрасывает указанные столбцы в качестве столбцов сопоставления для этого объекта RowSet.

void unsetMatchColumn​(String columnName)

Сбрасывает указанный столбец в качестве столбца сопоставления для этого объекта RowSet.

void unsetMatchColumn​(String[] columnName)

Сбрасывает указанные столбцы в качестве столбцов сопоставления для этого объекта RowSet.

Методы

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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql.rowset/javax/sql/rowset/Joinable.html

Spec-Zone .ru
спецификации, руководства, описания, API