Интерфейс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int[] |
getMatchColumnIndexes() |
Возвращает индексы столбцов соответствия, которые были установлены для этого объекта RowSet с помощью метода setMatchColumn(int[] columnIdxes). |
String[] |
getMatchColumnNames() |
Возвращает имена столбцов соответствия, которые были установлены для этого объекта RowSet с помощью метода setMatchColumn(String [] columnNames). |
void |
setMatchColumn |
Устанавливает указанный столбец в качестве столбца соответствия для этого объекта RowSet. |
void |
setMatchColumn |
Устанавливает указанные столбцы в качестве столбца соответствия для этого объекта RowSet. |
void |
setMatchColumn |
Устанавливает указанный столбец в качестве столбца соответствия для этого объекта RowSet. |
void |
setMatchColumn |
Устанавливает указанные столбцы в качестве столбца соответствия для этого объекта RowSet. |
void |
unsetMatchColumn |
Сбрасывает указанный столбец в качестве столбца соответствия для этого объекта RowSet. |
void |
unsetMatchColumn |
Сбрасывает указанные столбцы в качестве столбца соответствия для этого объекта RowSet. |
void |
unsetMatchColumn |
Сбрасывает указанный столбец в качестве столбца соответствия для этого объекта RowSet. |
void |
unsetMatchColumn |
Сбрасывает указанные столбцы в качестве столбцов соответствия для этого объекта RowSet. |
Подробное описание методов
setMatchColumn
void setMatchColumn(int columnIdx) throws SQLException
Подинтерфейсы, такие как интерфейс CachedRowSet, определяют метод CachedRowSet.setKeyColumns, который позволяет применить семантику первичного ключа к определенным столбцам. Реализации метода setMatchColumn(int columnIdx) должны гарантировать, что ограничения на столбцы ключа поддерживаются, когда объект CachedRowSet устанавливает столбец первичного ключа в качестве столбца соответствия.
- Параметры:
-
columnIdx- целое число, определяющее индекс столбца, который нужно установить в качестве столбца соответствия - Исключения:
-
SQLException- если установлен некорректный индекс столбца - См. также:
setMatchColumn
void setMatchColumn(int[] columnIdxes) throws SQLException
- Параметры:
-
columnIdxes- массив целых чисел, определяющих индексы столбцов, которые нужно установить в качестве столбцов соответствия - Исключения:
-
SQLException- если установлен некорректный индекс столбца - См. также:
setMatchColumn
void setMatchColumn(String columnName) throws SQLException
Подинтерфейсы, такие как интерфейс CachedRowSet, определяют метод CachedRowSet.setKeyColumns, который позволяет применить семантику первичного ключа к определенным столбцам. Реализации метода setMatchColumn(String columnIdx) должны гарантировать, что ограничения на столбцы ключа поддерживаются, когда объект CachedRowSet устанавливает столбец первичного ключа в качестве столбца соответствия.
- Параметры:
-
columnName- объект String, задающий имя столбца, который нужно установить в качестве столбца соответствия - Исключения:
-
SQLException- если установлено некорректное имя столбца, имя столбца равно null или пустое - См. также:
setMatchColumn
void setMatchColumn(String[] columnNames) throws SQLException
- Параметры:
-
columnNames- массив объектов String, задающих имена столбцов, которые нужно установить в качестве столбцов соответствия - Исключения:
-
SQLException- если установлено некорректное имя столбца, имя столбца равно null или пустое - См. также:
getMatchColumnIndexes
int[] getMatchColumnIndexes() throws SQLException
setMatchColumn(int[] columnIdxes). - Возвращает:
- массив целых чисел, определяющих индексы столбцов, которые были установлены в качестве столбцов соответствия для этого объекта
- Исключения:
-
SQLException- если столбец соответствия не был установлен - См. также:
getMatchColumnNames
String[] getMatchColumnNames() throws SQLException
setMatchColumn(String [] columnNames). - Возвращает:
- массив объектов String, задающих имена столбцов, установленных в качестве столбцов соответствия для этого объекта
- Исключения:
-
SQLException- если столбец соответствия не был установлен - См. также:
unsetMatchColumn
void unsetMatchColumn(int columnIdx) throws SQLException
Объекты, реализующие интерфейс Joinable, должны гарантировать, что ограничение типа ключа продолжает применяться, пока метод CachedRowSet.unsetKeyColumns не будет вызван для указанного столбца.
- Параметры:
-
columnIdx- целое число, определяющее индекс столбца, который необходимо удалить из столбцов соответствия - Исключения:
-
SQLException- если указан некорректный индекс столбца или указанный столбец ранее не был установлен как столбец соответствия - См. также:
unsetMatchColumn
void unsetMatchColumn(int[] columnIdxes) throws SQLException
- Параметры:
-
columnIdxes- массив целых чисел, определяющих индексы столбцов, которые нужно удалить из столбцов соответствия - Исключения:
-
SQLException- если указан некорректный индекс столбца или указанный столбец ранее не был установлен как столбец соответствия - См. также:
unsetMatchColumn
void unsetMatchColumn(String columnName) throws SQLException
Объекты, реализующие интерфейс Joinable, должны гарантировать, что ограничение типа ключа продолжает применяться, пока метод CachedRowSet.unsetKeyColumns не будет вызван для указанного столбца.
- Параметры:
-
columnName- объект String, задающий имя столбца, который нужно удалить из столбцов соответствия - Исключения:
-
SQLException- если указано некорректное имя столбца или указанный столбец ранее не был установлен как столбец соответствия - См. также:
unsetMatchColumn
void unsetMatchColumn(String[] columnName) throws SQLException
- Параметры:
-
columnName- массив объектов String, задающих имена столбцов, которые нужно удалить из столбцов соответствия - Исключения:
-
SQLException- если указано некорректное имя столбца или указанный столбец ранее не был установлен как столбец соответствия - См. также:
© 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