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