Spec-Zone.ru › OpenJDK 17

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

Подинтерфейсы, такие как интерфейс CachedRowSet, определяют метод CachedRowSet.setKeyColumns, который позволяет применить семантику первичного ключа к определенным столбцам. Реализации метода setMatchColumn(int columnIdx) должны гарантировать, что ограничения на столбцы ключа поддерживаются, когда объект CachedRowSet устанавливает столбец первичного ключа в качестве столбца соответствия.

Параметры:
columnIdx - целое число, определяющее индекс столбца, который нужно установить в качестве столбца соответствия
Исключения:
SQLException - если установлен некорректный индекс столбца
См. также:
  • setMatchColumn(int[])
  • unsetMatchColumn(int)

setMatchColumn

void setMatchColumn(int[] columnIdxes) throws SQLException
Устанавливает указанные столбцы в качестве столбца соответствия для этого объекта. Теперь объект может добавлять этот объект на основе столбца соответствия.
Параметры:
columnIdxes - массив целых чисел, определяющих индексы столбцов, которые нужно установить в качестве столбцов соответствия
Исключения:
SQLException - если установлен некорректный индекс столбца
См. также:
  • setMatchColumn(int[])
  • unsetMatchColumn(int[])

setMatchColumn

void setMatchColumn(String columnName) throws SQLException
Устанавливает указанный столбец в качестве столбца соответствия для этого объекта. Теперь объект может добавлять этот объект на основе столбца соответствия.

Подинтерфейсы, такие как интерфейс CachedRowSet, определяют метод CachedRowSet.setKeyColumns, который позволяет применить семантику первичного ключа к определенным столбцам. Реализации метода setMatchColumn(String columnIdx) должны гарантировать, что ограничения на столбцы ключа поддерживаются, когда объект CachedRowSet устанавливает столбец первичного ключа в качестве столбца соответствия.

Параметры:
columnName - объект String, задающий имя столбца, который нужно установить в качестве столбца соответствия
Исключения:
SQLException - если установлено некорректное имя столбца, имя столбца равно null или пустое
См. также:
  • unsetMatchColumn(int)
  • setMatchColumn(int[])

setMatchColumn

void setMatchColumn(String[] columnNames) throws SQLException
Устанавливает указанные столбцы в качестве столбца соответствия для этого объекта. Теперь объект может добавлять этот объект на основе столбца соответствия.
Параметры:
columnNames - массив объектов String, задающих имена столбцов, которые нужно установить в качестве столбцов соответствия
Исключения:
SQLException - если установлено некорректное имя столбца, имя столбца равно null или пустое
См. также:
  • unsetMatchColumn(int)
  • setMatchColumn(int[])

getMatchColumnIndexes

int[] getMatchColumnIndexes() throws SQLException
Возвращает индексы столбцов соответствия, которые были установлены для этого объекта с помощью метода setMatchColumn(int[] columnIdxes).
Возвращает:
массив целых чисел, определяющих индексы столбцов, которые были установлены в качестве столбцов соответствия для этого объекта
Исключения:
SQLException - если столбец соответствия не был установлен
См. также:
  • setMatchColumn(int)
  • unsetMatchColumn(int)

getMatchColumnNames

String[] getMatchColumnNames() throws SQLException
Возвращает имена столбцов соответствия, которые были установлены для этого объекта с помощью метода setMatchColumn(String [] columnNames).
Возвращает:
массив объектов String, задающих имена столбцов, установленных в качестве столбцов соответствия для этого объекта
Исключения:
SQLException - если столбец соответствия не был установлен
См. также:
  • setMatchColumn(int)
  • unsetMatchColumn(int)

unsetMatchColumn

void unsetMatchColumn(int columnIdx) throws SQLException
Снимает указанный столбец в качестве столбца соответствия для этого объекта.

Объекты, реализующие интерфейс Joinable, должны гарантировать, что ограничение типа ключа продолжает применяться, пока метод CachedRowSet.unsetKeyColumns не будет вызван для указанного столбца.

Параметры:
columnIdx - целое число, определяющее индекс столбца, который необходимо удалить из столбцов соответствия
Исключения:
SQLException - если указан некорректный индекс столбца или указанный столбец ранее не был установлен как столбец соответствия
См. также:
  • setMatchColumn(int)

unsetMatchColumn

void unsetMatchColumn(int[] columnIdxes) throws SQLException
Снимает указанные столбцы в качестве столбцов соответствия для этого объекта.
Параметры:
columnIdxes - массив целых чисел, определяющих индексы столбцов, которые нужно удалить из столбцов соответствия
Исключения:
SQLException - если указан некорректный индекс столбца или указанный столбец ранее не был установлен как столбец соответствия
См. также:
  • setMatchColumn(int)

unsetMatchColumn

void unsetMatchColumn(String columnName) throws SQLException
Снимает указанный столбец в качестве столбца соответствия для этого объекта.

Объекты, реализующие интерфейс Joinable, должны гарантировать, что ограничение типа ключа продолжает применяться, пока метод CachedRowSet.unsetKeyColumns не будет вызван для указанного столбца.

Параметры:
columnName - объект String, задающий имя столбца, который нужно удалить из столбцов соответствия
Исключения:
SQLException - если указано некорректное имя столбца или указанный столбец ранее не был установлен как столбец соответствия
См. также:
  • setMatchColumn(int)

unsetMatchColumn

void unsetMatchColumn(String[] columnName) throws SQLException
Снимает указанные столбцы в качестве столбцов соответствия для этого объекта.
Параметры:
columnName - массив объектов String, задающих имена столбцов, которые нужно удалить из столбцов соответствия
Исключения:
SQLException - если указано некорректное имя столбца или указанный столбец ранее не был установлен как столбец соответствия
См. также:
  • setMatchColumn(int)

© 1993, 2021, 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/17/docs/api/java.sql.rowset/javax/sql/rowset/Joinable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API