Интерфейс 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() | Возвращает индексы столбцов сопоставления, которые были установлены для этого объекта |
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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.sql.rowset/javax/sql/rowset/Joinable.html