Spec-Zone.ru › OpenJDK 27

Интерфейс CachedRowSet

Все суперинтерфейсы:
AutoCloseable, Joinable, ResultSet, RowSet, Wrapper
Все известные подинтерфейсы:
FilteredRowSet, JoinRowSet, WebRowSet
public interface CachedRowSet extends RowSet, Joinable
Интерфейс, который должны реализовывать все стандартные реализации CachedRowSet.

Эталонная реализация интерфейса CachedRowSet, предоставляемая корпорацией Oracle, является стандартной реализацией. Разработчики могут использовать эту реализацию без изменений, расширить её или написать собственные реализации этого интерфейса.

Объект CachedRowSet представляет собой контейнер строк данных, кэшируемых в памяти, что позволяет работать с ними без постоянного подключения к источнику данных. Кроме того, это компонент JavaBeans, поддерживающий прокрутку, обновление и сериализацию. Объект CachedRowSet обычно содержит строки из набора результатов, но также может содержать строки из любого файла с табличным форматом, например электронной таблицы. Эталонная реализация поддерживает получение данных только из объекта ResultSet, однако разработчики могут расширить реализации SyncProvider, чтобы обеспечить доступ к другим табличным источникам данных.

Приложение может изменять данные в объекте CachedRowSet, а затем передавать эти изменения обратно в источник данных.

Объект CachedRowSet представляет собой отключённый набор строк, то есть использует соединение с источником данных лишь в течение короткого времени. Он подключается к источнику данных при чтении данных для заполнения строками и снова при передаче изменений в базовый источник данных. В остальное время объект CachedRowSet отключён, в том числе во время изменения его данных. Благодаря отключённому состоянию объект RowSet становится гораздо более компактным и поэтому его значительно проще передавать другому компоненту. Например, отключённый объект RowSet можно сериализовать и передать по сети тонкому клиенту, например персональному цифровому помощнику (PDA).

1.0 Создание объекта CachedRowSet

Следующая строка кода использует конструктор по умолчанию для CachedRowSet, предоставляемый эталонной реализацией (RI), чтобы создать объект CachedRowSet со значениями по умолчанию.
    CachedRowSetImpl crs = new CachedRowSetImpl();
У этого нового объекта CachedRowSet будут заданы свойства по умолчанию объекта BaseRowSet, а также в качестве поставщика синхронизации будет использоваться объект RIOptimisticProvider. RIOptimisticProvider — одна из двух реализаций SyncProvider, включённых в RI, — является поставщиком по умолчанию, который будет предоставлен синглтоном SyncFactory, если поставщик синхронизации не указан.

Объект SyncProvider предоставляет объекту CachedRowSet средство чтения (объект RowSetReader) для чтения данных из источника данных и заполнения ими объекта. Средство чтения можно реализовать для чтения данных из объекта ResultSet или из файла с табличным форматом. Объект SyncProvider также предоставляет средство записи (объект RowSetWriter) для синхронизации изменений данных объекта CachedRowSet, внесённых в отключённом состоянии, с данными в базовом источнике данных.

Средство записи можно реализовать так, чтобы оно с разной степенью тщательности проверяло наличие конфликтов и предотвращало их. (Конфликт возникает, когда значение в источнике данных изменилось после того, как набор строк был заполнен этим значением.) Реализация RIOptimisticProvider предполагает, что конфликтов будет мало или не будет вовсе, и поэтому не устанавливает блокировки. Она обновляет источник данных значениями из объекта CachedRowSet, только если конфликтов нет. Другие средства записи можно реализовать так, чтобы они всегда записывали изменённые данные в источник данных. Этого можно добиться либо отказавшись от проверки конфликтов, либо, на противоположном конце спектра, установив блокировки, достаточные для предотвращения изменения данных в источнике. Возможны и другие реализации средств записи, занимающие промежуточное положение.

Объект CachedRowSet может использовать любую реализацию SyncProvider, зарегистрированную в синглтоне SyncFactory. Приложение может узнать, какие реализации SyncProvider зарегистрированы, выполнив следующую строку кода.

     java.util.Enumeration providers = SyncFactory.getRegisteredProviders();

Объект CachedRowSet может указать используемый объект SyncProvider двумя способами.

  • Передать имя реализации конструктору
    Следующая строка кода создаёт объект CachedRowSet crs2, инициализированный значениями по умолчанию, за исключением того, что его объектом SyncProvider будет указанный объект.
             CachedRowSetImpl crs2 = new CachedRowSetImpl(
                                    "com.fred.providers.HighAvailabilityProvider");
        
  • Установить SyncProvider с помощью метода CachedRowSet setSyncProvider
    Следующая строка кода задаёт новый объект SyncProvider для crs — объекта CachedRowSet, созданного конструктором по умолчанию.
              crs.setSyncProvider("com.fred.providers.HighAvailabilityProvider");
         
Дополнительные сведения см. в комментариях к SyncFactory и SyncProvider.

2.0 Получение данных из объекта CachedRowSet

Данные из объекта CachedRowSet получают с помощью методов получения, унаследованных от интерфейса ResultSet. В следующих примерах, где crs является объектом CachedRowSet, показано, как выполнять перебор строк и получать значения столбцов в каждой строке. В первом примере используется вариант методов получения, принимающий номер столбца; во втором — вариант, принимающий имя столбца. Номера столбцов обычно используются, когда команда объекта RowSet имеет вид SELECT * FROM TABLENAME; имена столбцов чаще всего используются, когда команда задаёт столбцы по именам.
   while (crs.next()) {
       String name = crs.getString(1);
       int id = crs.getInt(2);
       Clob comment = crs.getClob(3);
       short dept = crs.getShort(4);
       System.out.println(name + "  " + id + "  " + comment + "  " + dept);
   }
   while (crs.next()) {
       String name = crs.getString("NAME");
       int id = crs.getInt("ID");
       Clob comment = crs.getClob("COM");
       short dept = crs.getShort("DEPT");
       System.out.println(name + "  " + id + "  " + comment + "  " + dept);
   }

2.1 Получение RowSetMetaData

Приложение может получить сведения о столбцах объекта CachedRowSet, вызвав методы ResultSetMetaData и RowSetMetaData для объекта RowSetMetaData. В следующем фрагменте кода, где crs является объектом CachedRowSet, показано, как это сделать. В первой строке создаётся объект RowSetMetaData со сведениями о столбцах объекта crs. Метод getMetaData, унаследованный от интерфейса ResultSet, возвращает объект ResultSetMetaData, который перед присваиванием переменной rsmd приводится к типу объекта RowSetMetaData. Во второй строке определяется количество столбцов в jrs, а в третьей — тип JDBC значений, хранящихся во втором столбце jrs.
    RowSetMetaData rsmd = (RowSetMetaData)crs.getMetaData();
    int count = rsmd.getColumnCount();
    int type = rsmd.getColumnType(2);
Интерфейс RowSetMetaData отличается от интерфейса ResultSetMetaData двумя особенностями.
  • Он включает методы setter: Объект RowSet использует эти методы внутри себя при заполнении данными из другого объекта ResultSet.
  • Он содержит меньше методов getter: Некоторые методы ResultSetMetaData неприменимы к объекту RowSet. Например, методы, возвращающие сведения о том, доступен ли столбец для записи или предназначен только для чтения, неприменимы, поскольку все столбцы объекта RowSet доступны для записи или предназначены только для чтения в зависимости от того, поддерживает ли набор строк обновление.
ПРИМЕЧАНИЕ. Чтобы возвращать объект RowSetMetaData, реализации должны переопределить метод getMetaData(), определённый в java.sql.ResultSet, и возвращать объект RowSetMetaData.

3.0 Обновление объекта CachedRowSet

Обновление объекта CachedRowSet похоже на обновление объекта ResultSet, однако, поскольку во время обновления набор строк не подключён к источнику данных, для применения изменений в базовом источнике данных требуется дополнительный шаг. После вызова метода updateRow или insertRow объект CachedRowSet должен также вызвать метод acceptChanges, чтобы записать обновления в источник данных. В следующем примере, где курсор находится на строке объекта CachedRowSet crs, показан код для обновления значений двух столбцов текущей строки и базового источника данных объекта RowSet.
    crs.updateShort(3, 58);
    crs.updateInt(4, 150000);
    crs.updateRow();
    crs.acceptChanges();

В следующем примере показано, как перейти к строке вставки, создать в ней новую строку, вставить её в набор строк, а затем вызвать метод acceptChanges, чтобы добавить новую строку в базовый источник данных. Обратите внимание: как и методы получения, методы обновления могут принимать либо индекс столбца, либо его имя для указания обрабатываемого столбца.

    crs.moveToInsertRow();
    crs.updateString("Name", "Shakespeare");
    crs.updateInt("ID", 10098347);
    crs.updateShort("Age", 58);
    crs.updateInt("Sal", 150000);
    crs.insertRow();
    crs.moveToCurrentRow();
    crs.acceptChanges();

ПРИМЕЧАНИЕ. Место, в которое метод insertRow() вставляет содержимое строки вставки объекта CachedRowSet, определяется реализацией. Эталонная реализация интерфейса CachedRowSet вставляет новую строку сразу после текущей, однако новую строку можно реализовать так, чтобы она вставлялась в любое другое место.

Ещё один важный момент в этих примерах — использование метода acceptChanges. Именно этот метод передаёт изменения объекта CachedRowSet обратно в базовый источник данных, вызывая внутри себя средство записи объекта RowSet для записи изменений в источник данных. Для этого средству записи приходится устанавливать соединение с источником данных, что требует дополнительных ресурсов. В двух приведённых выше фрагментах кода метод acceptChanges вызывается сразу после вызова updateRow или insertRow. Однако при изменении нескольких строк эффективнее вызвать acceptChanges после всех вызовов updateRow и insertRow. Если вызвать acceptChanges только один раз, потребуется установить лишь одно соединение.

4.0 Обновление базового источника данных

При выполнении метода acceptChanges средство записи объекта CachedRowSet — объект RowSetWriterImpl — незаметно для пользователя вызывается для записи изменений, внесённых в набор строк, в базовый источник данных. Средство записи реализовано так, чтобы устанавливать соединение с источником данных и записывать в него обновления.

Средство записи предоставляется реализацией интерфейса SyncProvider, как описано в разделе 1 «Создание объекта CachedRowSet». В поставщике эталонной реализации по умолчанию, RIOptimisticProvider, средство записи реализовано с использованием механизма оптимистичного управления параллелизмом. То есть, пока набор строк отключён от базы данных, блокировки в базовой базе данных не поддерживаются; вместо этого перед записью данных в источник средство записи просто проверяет наличие конфликтов. При обнаружении конфликтов данные в источник не записываются.

Предоставляемые классом SyncProvider средства чтения и записи можно заменять, что позволяет настраивать получение и обновление данных. Если требуется другой механизм управления параллелизмом, можно подключить другую реализацию SyncProvider с помощью метода setSyncProvider.

Для использования процедуры оптимистичного управления параллелизмом объект RIOptimisticProvider хранит как текущее, так и исходное значение (значение, которое было непосредственно перед текущим). Обратите внимание: если данные в объекте RowSet не изменялись, его текущие и исходные значения совпадают и равны значениям, которыми объект RowSet был заполнен изначально. Однако после изменения любого значения в объекте RowSet текущие и исходные значения будут различаться, хотя на этом этапе исходные значения всё ещё будут исходными значениями. При последующих изменениях данных в объекте RowSet его исходные и текущие значения по-прежнему будут различаться, но исходными значениями станут те, которые ранее были текущими.

Отслеживание исходных значений позволяет средству записи сравнить исходное значение объекта RowSet со значением в базе данных. Если значения в базе данных отличаются от исходных значений объекта RowSet, то есть если значения в базе данных были изменены, возникает конфликт. Проверяет ли средство записи конфликты, насколько тщательно оно это делает и как обрабатывает конфликты — всё это зависит от его реализации.

5.0 Регистрация слушателей и уведомление о событиях

Будучи компонентами JavaBeans, все наборы строк участвуют в модели событий JavaBeans и наследуют от класса BaseRowSet методы регистрации слушателей и уведомления их об изменениях. Слушатель объекта CachedRowSet — это компонент, который должен получать уведомления об изменениях в наборе строк. Например, если объект CachedRowSet содержит результаты запроса, отображаемые, скажем, в таблице и на столбчатой диаграмме, таблицу и диаграмму можно зарегистрировать в качестве слушателей набора строк, чтобы они могли обновляться при изменениях. Чтобы стать слушателями, классы таблицы и диаграммы должны реализовать интерфейс RowSetListener. Затем их можно добавить в список слушателей объекта CachedRowSet, как показано в следующих строках кода.
   crs.addRowSetListener(table);
   crs.addRowSetListener(barGraph);
Каждый метод CachedRowSet, перемещающий курсор или изменяющий данные, также уведомляет зарегистрированных слушателей об изменениях, поэтому table и barGraph получат уведомление при изменении crs.

6.0 Передача данных тонким клиентам

Одна из основных причин использовать объект CachedRowSet — передача данных между различными компонентами приложения. Поскольку объект CachedRowSet поддерживает сериализацию, его можно использовать, например, для отправки результата запроса, выполненного компонентом Enterprise JavaBeans на сервере, по сети клиенту, работающему в веб-браузере.

В отключённом состоянии объект CachedRowSet может быть гораздо компактнее объекта ResultSet с теми же данными. Поэтому он особенно подходит для отправки данных тонкому клиенту, например PDA, где использование драйвера JDBC было бы неуместным из-за ограничений ресурсов или соображений безопасности. Таким образом, объект CachedRowSet позволяет «передавать строки» без необходимости реализовывать полный API JDBC.

7.0 Прокрутка и обновление

Второе важное применение объектов CachedRowSet — обеспечение прокрутки и обновления объектов ResultSet, которые сами не поддерживают эти возможности. Иными словами, объект CachedRowSet можно использовать для расширения возможностей драйвера с поддержкой технологии JDBC (далее — «драйвер JDBC»), если СУБД не обеспечивает полную поддержку прокрутки и обновления. Чтобы сделать непрокручиваемый и доступный только для чтения объект ResultSet прокручиваемым и обновляемым, программисту достаточно создать объект CachedRowSet, заполненный данными этого объекта ResultSet. Это показано в следующем фрагменте кода, где stmt — объект Statement.
   ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEES");
   CachedRowSetImpl crs = new CachedRowSetImpl();
   crs.populate(rs);

Теперь объект crs содержит данные из таблицы EMPLOYEES, как и объект rs. Разница в том, что курсор для crs можно перемещать вперёд, назад или к определённой строке, даже если курсор для rs может двигаться только вперёд. Кроме того, crs доступен для обновления, даже если rs не доступен, поскольку по умолчанию объект CachedRowSet поддерживает прокрутку и обновление.

Таким образом, объект CachedRowSet можно рассматривать просто как отключённый от источника данных набор строк, кэшируемых вне источника. Будучи компактным и сериализуемым, его легко передать по сети, поэтому он хорошо подходит для передачи данных тонкому клиенту. Однако у объекта CachedRowSet есть ограничение: его размер ограничен объёмом данных, которые он может одновременно хранить в памяти.

8.0 Универсальный доступ к данным

Ещё одно преимущество класса CachedRowSet состоит в том, что он позволяет получать и хранить данные из источников, отличных от реляционной базы данных. Читатель набора строк можно реализовать так, чтобы он считывал данные из любого табличного источника данных и заполнял ими набор строк, в том числе данными из электронной таблицы или текстового файла. Поскольку объект CachedRowSet и его метаданные можно создать с нуля, компонент, выполняющий роль фабрики наборов строк, может использовать эту возможность для создания набора строк с данными из источников, не использующих SQL. Тем не менее предполагается, что большую часть времени объекты CachedRowSet будут содержать данные, полученные из базы данных SQL с помощью API JDBC.

9.0 Настройка свойств

Все наборы строк поддерживают набор свойств, которые обычно задаются с помощью инструмента. Количество и виды свойств набора строк зависят от его назначения и способа получения данных. Например, наборы строк, получающие данные из объекта ResultSet, должны задать свойства, необходимые для подключения к базе данных. Если набор строк использует для подключения средство DriverManager, ему нужно задать свойство для URL-адреса JDBC, указывающего соответствующий драйвер, а также свойства, содержащие имя пользователя и пароль. Если же набор строк использует для подключения объект DataSource, что является предпочтительным способом, задавать свойство для URL-адреса JDBC не требуется. Вместо этого необходимо задать свойства для логического имени источника данных, имени пользователя и пароля.

ПРИМЕЧАНИЕ. Чтобы использовать объект DataSource для подключения, объект DataSource необходимо зарегистрировать в службе именования, использующей API Java Naming and Directory Interface (JNDI). Обычно такую регистрацию выполняет системный администратор.

Чтобы набор строк мог заполнить себя данными из базы данных, ему необходимо задать свойство команды. Это свойство представляет собой запрос — объект PreparedStatement, позволяющий задавать параметры-заполнители во время выполнения, а не на этапе проектирования. Для задания значений этих параметров-заполнителей набор строк предоставляет методы установки значений для каждого типа данных, аналогичные методам установки, предоставляемым интерфейсом PreparedStatement.

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

   crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS " +
                  "WHERE CREDIT_LIMIT > ? AND REGION = ?");
 

Значения, которые будут использоваться для задания параметров-заполнителей команды, содержатся в поле params объекта RowSet, представляющем собой объект Vector. Класс CachedRowSet предоставляет набор методов установки для задания элементов поля params. Следующий фрагмент кода показывает, как задать два параметра запроса из предыдущего примера.

   crs.setInt(1, 5000);
   crs.setString(2, "West");

Теперь поле params содержит два элемента, каждый из которых представляет собой массив из двух элементов. Первый элемент — номер параметра, второй — задаваемое значение. В данном случае первый элемент params — это 1, 5000, а второй элемент — 2, "West". Когда приложение вызывает метод execute, он, в свою очередь, вызывает читатель этого объекта RowSet, который затем вызывает свой метод readData. В рамках своей реализации readData получит значения из params и использует их для задания параметров-заполнителей команды. Следующий фрагмент кода показывает, как читатель это делает после получения объекта Connection con.

   PreparedStatement pstmt = con.prepareStatement(crs.getCommand());
   reader.decodeParams();
   // decodeParams figures out which setter methods to use and does something
   // like the following:
   //    for (i = 0; i < params.length; i++) {
   //        pstmt.setObject(i + 1, params[i]);
   //    }

На этом этапе команда для crs представляет собой запрос "SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS WHERE CREDIT_LIMIT > 5000 AND REGION = "West". После выполнения этой команды методом readData с помощью следующей строки кода у него будут данные из rs, которыми можно заполнить crs.

    ResultSet rs = pstmt.executeQuery();

Предыдущие фрагменты кода дают представление о том, что происходит в фоновом режиме; в приложении они не встречаются, поскольку приложение не вызывает такие методы, как readData и decodeParams. Напротив, следующий фрагмент кода показывает, что может делать приложение. Оно задаёт команду набора строк, устанавливает параметры команды и выполняет её. Просто вызвав метод execute, crs заполняет себя запрошенными данными из таблицы CUSTOMERS.

   crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS" +
                  "WHERE CREDIT_LIMIT > ? AND REGION = ?");
   crs.setInt(1, 5000);
   crs.setString(2, "West");
   crs.execute();

10.0 Постраничное получение данных

Поскольку объект CachedRowSet хранит данные в памяти, объём данных, который он может одновременно содержать, зависит от доступного объёма памяти. Чтобы обойти это ограничение, объект CachedRowSet может получать данные из объекта ResultSet фрагментами, называемыми страницами. Чтобы воспользоваться этим механизмом, приложение задаёт количество строк на странице с помощью метода setPageSize. Иными словами, если размер страницы установлен равным пяти, за один раз из источника данных будет извлекаться фрагмент из пяти строк. Приложение также может задать максимальное количество строк, извлекаемых за один раз. Если максимальное количество строк равно нулю или оно не задано, число строк, извлекаемых за один раз, не ограничено.

После задания свойств объект CachedRowSet необходимо заполнить данными с помощью метода populate или execute. В следующих строках кода показано использование метода populate. Обратите внимание, что эта версия метода принимает два параметра: дескриптор ResultSet и строку объекта ResultSet, с которой следует начать извлечение строк.

    CachedRowSet crs = new CachedRowSetImpl();
    crs.setMaxRows(20);
    crs.setPageSize(4);
    crs.populate(rsHandle, 10);
После выполнения этого кода crs будет содержать четыре строки из rsHandle, начиная с десятой строки.

В следующем фрагменте кода показано заполнение объекта CachedRowSet с помощью метода execute, который может принимать или не принимать объект Connection в качестве параметра. В этом коде методу execute передаётся объект Connection conHandle.

Обратите внимание на два отличия следующего фрагмента кода от предыдущего. Во-первых, метод setMaxRows не вызывается, поэтому количество строк, которое может содержать crs, не ограничено. (Помните, что для crs всегда действует ограничение, определяемое объёмом данных, которые он может хранить в памяти.) Второе отличие состоит в том, что методу execute нельзя передать номер строки объекта ResultSet, с которой следует начать извлечение строк. Этот метод всегда начинает с первой строки.

    CachedRowSet crs = new CachedRowSetImpl();
    crs.setPageSize(5);
    crs.execute(conHandle);
После выполнения этого кода crs будет содержать пять строк данных из объекта ResultSet, созданного командой для crs. Записыватель crs использует conHandle для подключения к источнику данных и выполнения команды для crs. Затем приложение может работать с данными в crs так же, как и с данными в любом другом объекте CachedRowSet.

Чтобы получить следующую страницу (фрагмент данных), приложение вызывает метод nextPage. Этот метод создаёт новый объект CachedRowSet и заполняет его следующей страницей данных. Например, предположим, что команда объекта CachedRowSet возвращает объект ResultSet rs с 1000 строками данных. Если размер страницы установлен равным 100, первый вызов метода nextPage создаст объект CachedRowSet, содержащий первые 100 строк rs. Выполнив необходимые действия с данными этих первых 100 строк, приложение может снова вызвать метод nextPage, чтобы создать ещё один объект CachedRowSet со следующими 100 строками из rs. Данные первого объекта CachedRowSet больше не будут находиться в памяти, поскольку их заменят данные второго объекта CachedRowSet. После десятого вызова метода nextPage десятый объект CachedRowSet будет содержать последние 100 строк данных из rs, хранящиеся в памяти. В каждый момент времени в памяти хранятся данные только одного объекта CachedRowSet.

Метод nextPage возвращает true, пока текущая страница не является последней страницей строк, и false, когда страниц больше нет. Поэтому его можно использовать в цикле while для извлечения всех страниц, как показано в следующих строках кода.

    CachedRowSet crs = CachedRowSetImpl();
    crs.setPageSize(100);
    crs.execute(conHandle);

    while(crs.nextPage()) {
        while(crs.next()) {
            . . . // operate on chunks (of 100 rows each) in crs,
                  // row by row
        }
    }
После выполнения этого фрагмента кода приложение пройдёт все 1000 строк, но одновременно в памяти будет находиться не более 100 строк.

Интерфейс CachedRowSet также определяет метод previousPage. Так же как метод nextPage аналогичен методу ResultSet интерфейса next, метод previousPage аналогичен методу ResultSet интерфейса previous. Подобно методу nextPage, previousPage создаёт объект CachedRowSet, содержащий количество строк, заданное размером страницы. Например, метод previousPage можно использовать в цикле while в конце предыдущего фрагмента кода, чтобы перемещаться по страницам от последней к первой. Метод previousPage также похож на nextPage тем, что его можно использовать в цикле while, однако он возвращает true, пока перед ним есть предыдущая страница, и false, когда предыдущих страниц больше нет.

Если, как в следующем фрагменте кода, установить курсор после последней строки каждой страницы, метод previous будет перемещать курсор от последней строки к первой на каждой странице. Можно было также оставить курсор перед первой строкой каждой страницы, а затем использовать метод next в цикле while для перемещения по каждой странице от первой строки к последней.

Следующий фрагмент кода предполагает продолжение предыдущего фрагмента, то есть курсор десятого объекта CachedRowSet находится на последней строке. Код перемещает курсор за последнюю строку, чтобы первый вызов метода previous вернул курсор на последнюю строку. Пройдя все строки последней страницы (объекта CachedRowSet crs), код переходит в цикл while, чтобы перейти к девятой странице, пройти строки в обратном порядке, перейти к восьмой странице, пройти строки в обратном порядке и так далее до первой строки первой страницы.

    crs.afterLast();
    while(crs.previous())  {
        . . . // navigate through the rows, last to first
    {
    while(crs.previousPage())  {
        crs.afterLast();
        while(crs.previous())  {
            . . . // go from the last row to the first row of each page
        }
    }
Начиная с:
1.5

Краткое описание полей

Модификатор и тип Поле Описание
static final boolean COMMIT_ON_ACCEPT_CHANGES
Устарело.
Поскольку это поле является final (оно входит в интерфейс), его значение нельзя изменить.

Поля, объявленные в интерфейсе ResultSet

CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE
Модификатор и тип Поле Описание
static final int CLOSE_CURSORS_AT_COMMIT
Константа, указывающая, что открытые объекты ResultSet с таким режимом удержания будут закрыты при фиксации текущей транзакции.
static final int CONCUR_READ_ONLY
Константа, указывающая режим конкурентного доступа для объекта ResultSet, который НЕ может быть обновлён.
static final int CONCUR_UPDATABLE
Константа, указывающая режим конкурентного доступа для объекта ResultSet, который может быть обновлён.
static final int FETCH_FORWARD
Константа, указывающая, что строки в наборе результатов будут обрабатываться в прямом направлении — от первой к последней.
static final int FETCH_REVERSE
Константа, указывающая, что строки в наборе результатов будут обрабатываться в обратном направлении — от последней к первой.
static final int FETCH_UNKNOWN
Константа, указывающая, что порядок обработки строк в наборе результатов неизвестен.
static final int HOLD_CURSORS_OVER_COMMIT
Константа, указывающая, что открытые объекты ResultSet с таким режимом удержания останутся открытыми при фиксации текущей транзакции.
static final int TYPE_FORWARD_ONLY
Константа, указывающая тип объекта ResultSet, курсор которого может перемещаться только вперёд.
static final int TYPE_SCROLL_INSENSITIVE
Константа, указывающая тип объекта ResultSet, который допускает прокрутку, но обычно не реагирует на изменения данных, лежащих в основе ResultSet.
static final int TYPE_SCROLL_SENSITIVE
Константа, указывающая тип объекта ResultSet, который допускает прокрутку и обычно реагирует на изменения данных, лежащих в основе ResultSet.

Краткое описание методов

Модификатор и тип Метод Описание
void acceptChanges()
Передает источнику данных изменения строк, включая обновления, вставки и удаления, внесенные в этот объект CachedRowSet.
void acceptChanges(Connection con)
Передает все изменения строк, включая обновления, вставки и удаления, источнику данных, на котором основан этот объект CachedRowSet, используя указанный объект Connection для установления соединения с источником данных.
boolean columnUpdated(int idx)
Указывает, обновлялся ли указанный столбец в текущей строке этого объекта CachedRowSet.
boolean columnUpdated(String columnName)
Указывает, обновлялся ли указанный столбец в текущей строке этого объекта CachedRowSet.
void commit()
Объект CachedRowSet содержит в своем SyncProvider объект Connection из ResultSet или свойства JDBC, переданные его конструкторам.
CachedRowSet createCopy()
Создает объект RowSet, являющийся глубокой копией данных этого объекта CachedRowSet.
CachedRowSet createCopyNoConstraints()
Создает объект CachedRowSet, являющийся глубокой копией данных этого объекта CachedRowSet, но не связанный с ним.
CachedRowSet createCopySchema()
Создает объект CachedRowSet, являющийся пустой копией этого объекта CachedRowSet.
RowSet createShared()
Возвращает новый объект RowSet, использующий те же данные, что и этот объект CachedRowSet.
void execute(Connection conn)
Заполняет этот объект CachedRowSet данными, используя заданное соединение для создания результирующего набора, из которого будут считываться данные.
int[] getKeyColumns()
Возвращает массив с одним или несколькими номерами столбцов, указывающими столбцы, образующие ключ, который однозначно идентифицирует строку в этом объекте CachedRowSet.
ResultSet getOriginal()
Возвращает объект ResultSet, содержащий исходное значение этого объекта CachedRowSet.
ResultSet getOriginalRow()
Возвращает объект ResultSet, содержащий исходное значение только текущей строки этого объекта CachedRowSet.
int getPageSize()
Возвращает размер страницы для объекта CachedRowSet
RowSetWarning getRowSetWarnings()
Получает первое предупреждение, выданное при вызовах этого объекта RowSet.
boolean getShowDeleted()
Получает значение boolean, указывающее, отображаются ли помеченные для удаления строки в наборе текущих строк.
SyncProvider getSyncProvider()
Получает реализацию SyncProvider для этого объекта CachedRowSet.
String getTableName()
Возвращает идентификатор объекта (таблицы), использованного для создания этого объекта CachedRowSet.
boolean nextPage()
Переходит к следующей странице объекта CachedRowSet.
void populate(ResultSet data)
Заполняет этот объект CachedRowSet данными из заданного объекта ResultSet.
void populate(ResultSet rs, int startRow)
Заполняет этот объект CachedRowSet данными из заданного объекта ResultSet.
boolean previousPage()
Переходит к предыдущей странице объекта CachedRowSet.
void release()
Освобождает текущее содержимое этого объекта CachedRowSet и отправляет событие rowSetChanged всем зарегистрированным слушателям.
void restoreOriginal()
Восстанавливает исходное значение этого объекта CachedRowSet, то есть значение, которое было до последнего набора изменений.
void rollback()
Объект CachedRowSet содержит в своем SyncProvider объект Connection из исходных свойств ResultSet или JDBC, переданных ему.
void rollback(Savepoint s)
Объект CachedRowSet содержит в своем SyncProvider объект Connection из исходных свойств ResultSet или JDBC, переданных ему.
void rowSetPopulated(RowSetEvent event, int numRows)
Уведомляет зарегистрированных слушателей о том, что объект RowSet в заданном объекте RowSetEvent добавил несколько строк.
void setKeyColumns(int[] keys)
Задает для поля CachedRowSet этого объекта keyCols указанный массив номеров столбцов, образующих ключ для однозначной идентификации строки в этом объекте CachedRowSet.
void setMetaData(RowSetMetaData md)
Задает метаданные для этого объекта CachedRowSet, используя указанный объект RowSetMetaData.
void setOriginalRow()
Задает текущую строку этого объекта CachedRowSet как исходную строку.
void setPageSize(int size)
Задает размер страницы объекта CachedRowSet.
void setShowDeleted(boolean b)
Задает для свойства showDeleted указанное значение boolean, определяющее, отображаются ли помеченные для удаления строки в наборе текущих строк.
void setSyncProvider(String provider)
Задает для объекта SyncProvider этого объекта CachedRowSet указанный объект.
void setTableName(String tabName)
Задает идентификатор таблицы, из которой был получен этот объект CachedRowSet, используя указанное имя таблицы.
int size()
Возвращает количество строк в этом объекте CachedRowSet.
Collection<?> toCollection()
Преобразует этот объект CachedRowSet в объект Collection, содержащий все данные этого объекта CachedRowSet.
Collection<?> toCollection(int column)
Преобразует указанный столбец этого объекта CachedRowSet в объект Collection.
Collection<?> toCollection(String column)
Преобразует указанный столбец этого объекта CachedRowSet в объект Collection.
void undoDelete()
Отменяет удаление текущей строки и уведомляет слушателей об изменении строки.
void undoInsert()
Немедленно удаляет текущую строку из этого объекта CachedRowSet, если строка была вставлена, а также уведомляет слушателей об изменении строки.
void undoUpdate()
Немедленно отменяет последнюю операцию обновления, если строка была изменена.

Методы, объявленные в интерфейсе Joinable

getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
Модификатор и тип Метод Описание
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.

Методы, объявленные в интерфейсе ResultSet

absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, close, deleteRow, findColumn, first, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getConcurrency, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFetchSize, getFloat, getFloat, getHoldability, getInt, getInt, getLong, getLong, getMetaData, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull
Модификатор и тип Метод Описание
boolean absolute(int row)
Перемещает курсор на указанную строку в объекте ResultSet.
void afterLast()
Перемещает курсор в конец объекта ResultSet, сразу за последней строкой.
void beforeFirst()
Перемещает курсор в начало объекта ResultSet, прямо перед первой строкой.
void cancelRowUpdates()
Отменяет изменения, внесенные в текущую строку объекта ResultSet.
void clearWarnings()
Очищает все предупреждения, зарегистрированные для объекта ResultSet.
void close()
Немедленно освобождает ресурсы базы данных и JDBC объекта ResultSet вместо ожидания его автоматического закрытия.
void deleteRow()
Удаляет текущую строку из объекта ResultSet и базовой базы данных.
int findColumn(String columnLabel)
Сопоставляет указанную метку столбца ResultSet с индексом столбца ResultSet.
boolean first()
Перемещает курсор на первую строку объекта ResultSet.
Array getArray(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект Array в языке программирования Java.
Array getArray(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект Array в языке программирования Java.
InputStream getAsciiStream(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet в виде потока символов ASCII.
InputStream getAsciiStream(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet в виде потока символов ASCII.
BigDecimal getBigDecimal(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.math.BigDecimal с полной точностью.
BigDecimal getBigDecimal(int columnIndex, int scale)
Устарело.
Используйте getBigDecimal(int columnIndex) или getBigDecimal(String columnLabel)
BigDecimal getBigDecimal(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.math.BigDecimal с полной точностью.
BigDecimal getBigDecimal(String columnLabel, int scale)
Устарело.
Используйте getBigDecimal(int columnIndex) или getBigDecimal(String columnLabel)
InputStream getBinaryStream(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet в виде потока необработанных байтов.
InputStream getBinaryStream(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet в виде потока необработанных объектов byte.
Blob getBlob(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект Blob в языке программирования Java.
Blob getBlob(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект Blob в языке программирования Java.
boolean getBoolean(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как boolean в языке программирования Java.
boolean getBoolean(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как boolean в языке программирования Java.
byte getByte(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как byte в языке программирования Java.
byte getByte(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как byte в языке программирования Java.
byte[] getBytes(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как массив byte в языке программирования Java.
byte[] getBytes(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как массив byte в языке программирования Java.
Reader getCharacterStream(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.io.Reader.
Reader getCharacterStream(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.io.Reader.
Clob getClob(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект Clob в языке программирования Java.
Clob getClob(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект Clob в языке программирования Java.
int getConcurrency()
Возвращает режим параллелизма объекта ResultSet.
String getCursorName()
Возвращает имя курсора SQL, используемого объектом ResultSet.
Date getDate(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.sql.Date в языке программирования Java.
Date getDate(int columnIndex, Calendar cal)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.sql.Date в языке программирования Java.
Date getDate(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.sql.Date в языке программирования Java.
Date getDate(String columnLabel, Calendar cal)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.sql.Date в языке программирования Java.
double getDouble(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как double в языке программирования Java.
double getDouble(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как double в языке программирования Java.
int getFetchDirection()
Возвращает направление выборки для объекта ResultSet.
int getFetchSize()
Возвращает размер выборки для объекта ResultSet.
float getFloat(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как float в языке программирования Java.
float getFloat(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как float в языке программирования Java.
int getHoldability()
Возвращает режим удержания объекта ResultSet
int getInt(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как int в языке программирования Java.
int getInt(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как int в языке программирования Java.
long getLong(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как long в языке программирования Java.
long getLong(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как long в языке программирования Java.
ResultSetMetaData getMetaData()
Возвращает количество, типы и свойства столбцов объекта ResultSet.
Reader getNCharacterStream(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.io.Reader.
Reader getNCharacterStream(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект java.io.Reader.
NClob getNClob(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект NClob в языке программирования Java.
NClob getNClob(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как объект NClob в языке программирования Java.
String getNString(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как String в языке программирования Java.
String getNString(String columnLabel)
Возвращает значение указанного столбца текущей строки объекта ResultSet как String в языке программирования Java.
Object getObject(int columnIndex)
Возвращает значение указанного столбца текущей строки объекта ResultSet как Object в языке программирования Java.
<T> T getObject(int columnIndex, Class<T> type)
Возвращает значение указанного столбца текущей строки объекта ResultSet и преобразует его из типа SQL столбца в запрошенный тип данных Java, если такое преобразование поддерживается.
Object getObject(int columnIndex, Map<String,Class<?>> map)
Возвращает значение указанного столбца текущей строки объекта ResultSet как Object в языке программирования Java.
Object getObject(String columnLabel)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде Object на языке программирования Java.
<T> T getObject(String columnLabel, Class<T> type)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet и преобразует его из типа SQL столбца в запрошенный тип данных Java, если преобразование поддерживается.
Object getObject(String columnLabel, Map<String,Class<?>> map)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде Object на языке программирования Java.
Ref getRef(int columnIndex)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта Ref на языке программирования Java.
Ref getRef(String columnLabel)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта Ref на языке программирования Java.
int getRow()
Возвращает номер текущей строки.
RowId getRowId(int columnIndex)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.RowId на языке программирования Java.
RowId getRowId(String columnLabel)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.RowId на языке программирования Java.
short getShort(int columnIndex)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде short на языке программирования Java.
short getShort(String columnLabel)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде short на языке программирования Java.
SQLXML getSQLXML(int columnIndex)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.SQLXML на языке программирования Java.
SQLXML getSQLXML(String columnLabel)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.SQLXML на языке программирования Java.
Statement getStatement()
Возвращает объект Statement, создавший этот объект ResultSet.
String getString(int columnIndex)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде String на языке программирования Java.
String getString(String columnLabel)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде String на языке программирования Java.
Time getTime(int columnIndex)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.Time на языке программирования Java.
Time getTime(int columnIndex, Calendar cal)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.Time на языке программирования Java.
Time getTime(String columnLabel)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.Time на языке программирования Java.
Time getTime(String columnLabel, Calendar cal)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.Time на языке программирования Java.
Timestamp getTimestamp(int columnIndex)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.Timestamp на языке программирования Java.
Timestamp getTimestamp(int columnIndex, Calendar cal)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.Timestamp на языке программирования Java.
Timestamp getTimestamp(String columnLabel)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.Timestamp на языке программирования Java.
Timestamp getTimestamp(String columnLabel, Calendar cal)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.sql.Timestamp на языке программирования Java.
int getType()
Возвращает тип этого объекта ResultSet.
InputStream getUnicodeStream(int columnIndex)
Устарело.
вместо getUnicodeStream используйте getCharacterStream
InputStream getUnicodeStream(String columnLabel)
Устарело.
используйте вместо этого getCharacterStream
URL getURL(int columnIndex)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.net.URL на языке программирования Java.
URL getURL(String columnLabel)
Возвращает значение указанного столбца текущей строки этого объекта ResultSet в виде объекта java.net.URL на языке программирования Java.
SQLWarning getWarnings()
Возвращает первое предупреждение, зарегистрированное при вызовах этого объекта ResultSet.
void insertRow()
Вставляет содержимое строки вставки в этот объект ResultSet и в базу данных.
boolean isAfterLast()
Возвращает, находится ли курсор после последней строки этого объекта ResultSet.
boolean isBeforeFirst()
Возвращает, находится ли курсор перед первой строкой этого объекта ResultSet.
boolean isClosed()
Возвращает, был ли закрыт этот объект ResultSet.
boolean isFirst()
Возвращает, находится ли курсор на первой строке этого объекта ResultSet.
boolean isLast()
Возвращает, находится ли курсор на последней строке этого объекта ResultSet.
boolean last()
Перемещает курсор на последнюю строку этого объекта ResultSet.
void moveToCurrentRow()
Перемещает курсор в сохранённую позицию, обычно в текущую строку.
void moveToInsertRow()
Перемещает курсор в строку вставки.
boolean next()
Перемещает курсор на одну строку вперёд от его текущей позиции.
boolean previous()
Перемещает курсор на предыдущую строку этого объекта ResultSet.
void refreshRow()
Обновляет текущую строку, используя её последнее значение в базе данных.
boolean relative(int rows)
Перемещает курсор на заданное число строк относительно текущей позиции — вперёд или назад.
boolean rowDeleted()
Возвращает, была ли удалена строка.
boolean rowInserted()
Возвращает, была ли выполнена вставка в текущую строку.
boolean rowUpdated()
Возвращает, была ли обновлена текущая строка.
void setFetchDirection(int direction)
Задаёт рекомендацию о направлении обработки строк в этом объекте ResultSet.
void setFetchSize(int rows)
Задаёт драйверу JDBC рекомендацию о количестве строк, которые следует извлекать из базы данных, когда для этого объекта ResultSet потребуются дополнительные строки.
void updateArray(int columnIndex, Array x)
Обновляет указанный столбец значением java.sql.Array.
void updateArray(String columnLabel, Array x)
Обновляет указанный столбец значением java.sql.Array.
void updateAsciiStream(int columnIndex, InputStream x)
Обновляет указанный столбец значением потока ASCII.
void updateAsciiStream(int columnIndex, InputStream x, int length)
Обновляет указанный столбец значением потока ASCII заданной длины в байтах.
void updateAsciiStream(int columnIndex, InputStream x, long length)
Обновляет указанный столбец значением потока ASCII заданной длины в байтах.
void updateAsciiStream(String columnLabel, InputStream x)
Обновляет указанный столбец значением потока ASCII.
void updateAsciiStream(String columnLabel, InputStream x, int length)
Обновляет указанный столбец значением потока ASCII заданной длины в байтах.
void updateAsciiStream(String columnLabel, InputStream x, long length)
Обновляет указанный столбец значением потока ASCII заданной длины в байтах.
void updateBigDecimal(int columnIndex, BigDecimal x)
Обновляет указанный столбец значением java.math.BigDecimal.
void updateBigDecimal(String columnLabel, BigDecimal x)
Обновляет указанный столбец значением java.sql.BigDecimal.
void updateBinaryStream(int columnIndex, InputStream x)
Обновляет указанный столбец значением двоичного потока.
void updateBinaryStream(int columnIndex, InputStream x, int length)
Обновляет указанный столбец значением двоичного потока заданной длины в байтах.
void updateBinaryStream(int columnIndex, InputStream x, long length)
Обновляет указанный столбец значением двоичного потока заданной длины в байтах.
void updateBinaryStream(String columnLabel, InputStream x)
Обновляет указанный столбец значением двоичного потока.
void updateBinaryStream(String columnLabel, InputStream x, int length)
Обновляет указанный столбец значением двоичного потока заданной длины в байтах.
void updateBinaryStream(String columnLabel, InputStream x, long length)
Обновляет указанный столбец значением двоичного потока заданной длины в байтах.
void updateBlob(int columnIndex, InputStream inputStream)
Обновляет указанный столбец, используя заданный входной поток.
void updateBlob(int columnIndex, InputStream inputStream, long length)
Обновляет указанный столбец, используя заданный входной поток длиной в указанное количество байтов.
void updateBlob(int columnIndex, Blob x)
Обновляет указанный столбец значением java.sql.Blob.
void updateBlob(String columnLabel, InputStream inputStream)
Обновляет указанный столбец, используя заданный входной поток.
void updateBlob(String columnLabel, InputStream inputStream, long length)
Обновляет указанный столбец, используя заданный входной поток, содержащий указанное количество байтов.
void updateBlob(String columnLabel, Blob x)
Обновляет указанный столбец значением java.sql.Blob.
void updateBoolean(int columnIndex, boolean x)
Обновляет указанный столбец значением boolean.
void updateBoolean(String columnLabel, boolean x)
Обновляет указанный столбец значением boolean.
void updateByte(int columnIndex, byte x)
Обновляет указанный столбец значением byte.
void updateByte(String columnLabel, byte x)
Обновляет указанный столбец значением byte.
void updateBytes(int columnIndex, byte[] x)
Обновляет указанный столбец значением массива byte.
void updateBytes(String columnLabel, byte[] x)
Обновляет указанный столбец значением массива байтов.
void updateCharacterStream(int columnIndex, Reader x)
Обновляет указанный столбец значением из символьного потока.
void updateCharacterStream(int columnIndex, Reader x, int length)
Обновляет указанный столбец значением из символьного потока, содержащего указанное количество байтов.
void updateCharacterStream(int columnIndex, Reader x, long length)
Обновляет указанный столбец значением из символьного потока, содержащего указанное количество байтов.
void updateCharacterStream(String columnLabel, Reader reader)
Обновляет указанный столбец значением из символьного потока.
void updateCharacterStream(String columnLabel, Reader reader, int length)
Обновляет указанный столбец значением из символьного потока, содержащего указанное количество байтов.
void updateCharacterStream(String columnLabel, Reader reader, long length)
Обновляет указанный столбец значением из символьного потока, содержащего указанное количество байтов.
void updateClob(int columnIndex, Reader reader)
Обновляет указанный столбец, используя заданный объект Reader.
void updateClob(int columnIndex, Reader reader, long length)
Обновляет указанный столбец, используя заданный объект Reader указанной длины в символах.
void updateClob(int columnIndex, Clob x)
Обновляет указанный столбец значением java.sql.Clob.
void updateClob(String columnLabel, Reader reader)
Обновляет указанный столбец, используя заданный объект Reader.
void updateClob(String columnLabel, Reader reader, long length)
Обновляет указанный столбец, используя заданный объект Reader указанной длины в символах.
void updateClob(String columnLabel, Clob x)
Обновляет указанный столбец значением java.sql.Clob.
void updateDate(int columnIndex, Date x)
Обновляет указанный столбец значением java.sql.Date.
void updateDate(String columnLabel, Date x)
Обновляет указанный столбец значением java.sql.Date.
void updateDouble(int columnIndex, double x)
Обновляет указанный столбец значением double.
void updateDouble(String columnLabel, double x)
Обновляет указанный столбец значением double.
void updateFloat(int columnIndex, float x)
Обновляет указанный столбец значением float.
void updateFloat(String columnLabel, float x)
Обновляет указанный столбец значением float.
void updateInt(int columnIndex, int x)
Обновляет указанный столбец значением int.
void updateInt(String columnLabel, int x)
Обновляет указанный столбец значением int.
void updateLong(int columnIndex, long x)
Обновляет указанный столбец значением long.
void updateLong(String columnLabel, long x)
Обновляет указанный столбец значением long.
void updateNCharacterStream(int columnIndex, Reader x)
Обновляет указанный столбец значением из символьного потока.
void updateNCharacterStream(int columnIndex, Reader x, long length)
Обновляет указанный столбец значением из символьного потока, содержащего указанное количество байтов.
void updateNCharacterStream(String columnLabel, Reader reader)
Обновляет указанный столбец значением из символьного потока.
void updateNCharacterStream(String columnLabel, Reader reader, long length)
Обновляет указанный столбец значением из символьного потока, содержащего указанное количество байтов.
void updateNClob(int columnIndex, Reader reader)
Обновляет указанный столбец, используя заданный Reader Данные считываются из потока по мере необходимости до достижения его конца.
void updateNClob(int columnIndex, Reader reader, long length)
Обновляет указанный столбец, используя заданный объект Reader указанной длины в символах.
void updateNClob(int columnIndex, NClob nClob)
Обновляет указанный столбец значением java.sql.NClob.
void updateNClob(String columnLabel, Reader reader)
Обновляет указанный столбец, используя заданный объект Reader.
void updateNClob(String columnLabel, Reader reader, long length)
Обновляет указанный столбец, используя заданный объект Reader указанной длины в символах.
void updateNClob(String columnLabel, NClob nClob)
Обновляет указанный столбец значением java.sql.NClob.
void updateNString(int columnIndex, String nString)
Обновляет указанный столбец значением String.
void updateNString(String columnLabel, String nString)
Обновляет указанный столбец значением String.
void updateNull(int columnIndex)
Обновляет указанный столбец значением null.
void updateNull(String columnLabel)
Обновляет указанный столбец значением null.
void updateObject(int columnIndex, Object x)
Обновляет указанный столбец значением Object.
void updateObject(int columnIndex, Object x, int scaleOrLength)
Обновляет указанный столбец значением Object.
default void updateObject(int columnIndex, Object x, SQLType targetSqlType)
Обновляет указанный столбец значением Object.
default void updateObject(int columnIndex, Object x, SQLType targetSqlType, int scaleOrLength)
Обновляет указанный столбец значением Object.
void updateObject(String columnLabel, Object x)
Обновляет указанный столбец значением Object.
void updateObject(String columnLabel, Object x, int scaleOrLength)
Обновляет указанный столбец значением Object.
default void updateObject(String columnLabel, Object x, SQLType targetSqlType)
Обновляет указанный столбец значением Object.
default void updateObject(String columnLabel, Object x, SQLType targetSqlType, int scaleOrLength)
Обновляет указанный столбец значением Object.
void updateRef(int columnIndex, Ref x)
Обновляет указанный столбец значением java.sql.Ref.
void updateRef(String columnLabel, Ref x)
Обновляет указанный столбец значением java.sql.Ref.
void updateRow()
Обновляет базу данных, записывая новое содержимое текущей строки этого объекта ResultSet.
void updateRowId(int columnIndex, RowId x)
Обновляет указанный столбец значением RowId.
void updateRowId(String columnLabel, RowId x)
Обновляет указанный столбец значением RowId.
void updateShort(int columnIndex, short x)
Обновляет указанный столбец значением short.
void updateShort(String columnLabel, short x)
Обновляет указанный столбец значением short.
void updateSQLXML(int columnIndex, SQLXML xmlObject)
Обновляет указанный столбец значением java.sql.SQLXML.
void updateSQLXML(String columnLabel, SQLXML xmlObject)
Обновляет указанный столбец значением java.sql.SQLXML.
void updateString(int columnIndex, String x)
Обновляет указанный столбец значением String.
void updateString(String columnLabel, String x)
Обновляет указанный столбец значением String.
void updateTime(int columnIndex, Time x)
Обновляет указанный столбец значением java.sql.Time.
void updateTime(String columnLabel, Time x)
Обновляет указанный столбец значением java.sql.Time.
void updateTimestamp(int columnIndex, Timestamp x)
Обновляет указанный столбец значением java.sql.Timestamp.
void updateTimestamp(String columnLabel, Timestamp x)
Обновляет указанный столбец значением java.sql.Timestamp.
boolean wasNull()
Сообщает, имел ли последний считанный столбец значение SQL NULL.

Методы, объявленные в интерфейсе RowSet

addRowSetListener, clearParameters, execute, getCommand, getDataSourceName, getEscapeProcessing, getMaxFieldSize, getMaxRows, getPassword, getQueryTimeout, getTransactionIsolation, getTypeMap, getUrl, getUsername, isReadOnly, removeRowSetListener, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBlob, setBlob, setBlob, setBoolean, setBoolean, setByte, setByte, setBytes, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setClob, setClob, setClob, setCommand, setConcurrency, setDataSourceName, setDate, setDate, setDate, setDate, setDouble, setDouble, setEscapeProcessing, setFloat, setFloat, setInt, setInt, setLong, setLong, setMaxFieldSize, setMaxRows, setNCharacterStream, setNCharacterStream, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNClob, setNClob, setNClob, setNString, setNString, setNull, setNull, setNull, setNull, setObject, setObject, setObject, setObject, setObject, setObject, setPassword, setQueryTimeout, setReadOnly, setRef, setRowId, setRowId, setShort, setShort, setSQLXML, setSQLXML, setString, setString, setTime, setTime, setTime, setTime, setTimestamp, setTimestamp, setTimestamp, setTimestamp, setTransactionIsolation, setType, setTypeMap, setUrl, setURL, setUsername
Модификатор и тип Метод Описание
void addRowSetListener(RowSetListener listener)
Регистрирует указанный прослушиватель, чтобы он получал уведомления о событиях, происходящих с объектом RowSet.
void clearParameters()
Очищает параметры, заданные для команды объекта RowSet.
void execute()
Заполняет объект RowSet данными.
String getCommand()
Возвращает свойство command объекта RowSet.
String getDataSourceName()
Возвращает логическое имя, идентифицирующее источник данных для объекта RowSet.
boolean getEscapeProcessing()
Возвращает сведения о том, включена ли обработка escape-последовательностей для объекта RowSet.
int getMaxFieldSize()
Возвращает максимальное число байтов, которое может быть возвращено для значений некоторых столбцов.
int getMaxRows()
Возвращает максимальное число строк, которое может содержать объект RowSet.
String getPassword()
Возвращает пароль, использованный для создания подключения к базе данных.
int getQueryTimeout()
Возвращает максимальное время в секундах, в течение которого драйвер будет ожидать выполнения инструкции.
int getTransactionIsolation()
Возвращает уровень изоляции транзакций, заданный для объекта RowSet.
Map<String,Class<?>> getTypeMap()
Возвращает объект Map, связанный с объектом RowSet и задающий пользовательское сопоставление типов SQL, определённых пользователем, если оно имеется.
String getUrl()
Возвращает свойство url, которое объект RowSet будет использовать для создания подключения, если вместо объекта DataSource для установления подключения будет использоваться DriverManager.
String getUsername()
Возвращает имя пользователя, использованное для создания подключения к базе данных для объекта RowSet.
boolean isReadOnly()
Возвращает сведения о том, доступен ли объект RowSet только для чтения.
void removeRowSetListener(RowSetListener listener)
Удаляет указанный прослушиватель из списка компонентов, получающих уведомления о событиях, происходящих с объектом RowSet.
void setArray(int i, Array x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение Array.
void setAsciiStream(int parameterIndex, InputStream x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанный входной поток.
void setAsciiStream(int parameterIndex, InputStream x, int length)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение java.io.InputStream.
void setAsciiStream(String parameterName, InputStream x)
Задаёт указанный параметр, присваивая ему указанный входной поток.
void setAsciiStream(String parameterName, InputStream x, int length)
Задаёт указанный параметр, присваивая ему указанный входной поток, содержащий заданное число байтов.
void setBigDecimal(int parameterIndex, BigDecimal x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение java.math.BigDecimal.
void setBigDecimal(String parameterName, BigDecimal x)
Задаёт указанный параметр, присваивая ему указанное значение java.math.BigDecimal.
void setBinaryStream(int parameterIndex, InputStream x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанный входной поток.
void setBinaryStream(int parameterIndex, InputStream x, int length)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение java.io.InputStream.
void setBinaryStream(String parameterName, InputStream x)
Задаёт указанный параметр, присваивая ему указанный входной поток.
void setBinaryStream(String parameterName, InputStream x, int length)
Задаёт указанный параметр, присваивая ему указанный входной поток, содержащий заданное число байтов.
void setBlob(int parameterIndex, InputStream inputStream)
Задаёт указанный параметр, присваивая ему объект InputStream.
void setBlob(int parameterIndex, InputStream inputStream, long length)
Задаёт указанный параметр, присваивая ему объект InputStream.
void setBlob(int i, Blob x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение Blob.
void setBlob(String parameterName, InputStream inputStream)
Задаёт указанный параметр, присваивая ему объект InputStream.
void setBlob(String parameterName, InputStream inputStream, long length)
Задаёт указанный параметр, присваивая ему объект InputStream.
void setBlob(String parameterName, Blob x)
Задаёт указанный параметр, присваивая ему указанный объект java.sql.Blob.
void setBoolean(int parameterIndex, boolean x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение Java boolean.
void setBoolean(String parameterName, boolean x)
Задаёт указанный параметр, присваивая ему указанное значение Java boolean.
void setByte(int parameterIndex, byte x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение Java byte.
void setByte(String parameterName, byte x)
Задаёт указанный параметр, присваивая ему указанное значение Java byte.
void setBytes(int parameterIndex, byte[] x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанный массив Java из значений byte.
void setBytes(String parameterName, byte[] x)
Задаёт указанный параметр, присваивая ему указанный массив байтов Java.
void setCharacterStream(int parameterIndex, Reader reader)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанный объект Reader.
void setCharacterStream(int parameterIndex, Reader reader, int length)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение java.io.Reader.
void setCharacterStream(String parameterName, Reader reader)
Задаёт указанный параметр, присваивая ему указанный объект Reader.
void setCharacterStream(String parameterName, Reader reader, int length)
Задаёт указанный параметр, присваивая ему указанный объект Reader длиной в заданное число символов.
void setClob(int parameterIndex, Reader reader)
Задаёт указанный параметр, присваивая ему объект Reader.
void setClob(int parameterIndex, Reader reader, long length)
Задаёт указанный параметр, присваивая ему объект Reader.
void setClob(int i, Clob x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение Clob.
void setClob(String parameterName, Reader reader)
Задаёт указанный параметр, присваивая ему объект Reader.
void setClob(String parameterName, Reader reader, long length)
Задаёт указанный параметр, присваивая ему объект Reader.
void setClob(String parameterName, Clob x)
Задаёт указанный параметр, присваивая ему указанный объект java.sql.Clob.
void setCommand(String cmd)
Задаёт для свойства command объекта RowSet указанный SQL-запрос.
void setConcurrency(int concurrency)
Задаёт для объекта RowSet указанный уровень параллелизма.
void setDataSourceName(String name)
Задаёт для объекта RowSet свойство имени источника данных, присваивая ему указанное значение String.
void setDate(int parameterIndex, Date x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение java.sql.Date.
void setDate(int parameterIndex, Date x, Calendar cal)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение java.sql.Date.
void setDate(String parameterName, Date x)
Задаёт указанный параметр, присваивая ему указанное значение java.sql.Date с использованием часового пояса по умолчанию виртуальной машины, на которой выполняется приложение.
void setDate(String parameterName, Date x, Calendar cal)
Задаёт указанный параметр, присваивая ему указанное значение java.sql.Date с использованием указанного объекта Calendar.
void setDouble(int parameterIndex, double x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение Java double.
void setDouble(String parameterName, double x)
Задаёт указанный параметр, присваивая ему указанное значение Java double.
void setEscapeProcessing(boolean enable)
Включает или отключает обработку escape-последовательностей для объекта RowSet.
void setFloat(int parameterIndex, float x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение Java float.
void setFloat(String parameterName, float x)
Задаёт указанный параметр, присваивая ему указанное значение Java float.
void setInt(int parameterIndex, int x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение Java int.
void setInt(String parameterName, int x)
Задаёт указанный параметр, присваивая ему указанное значение Java int.
void setLong(int parameterIndex, long x)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему указанное значение Java long.
void setLong(String parameterName, long x)
Задаёт указанный параметр, присваивая ему указанное значение Java long.
void setMaxFieldSize(int max)
Задаёт максимальное число байтов, возвращаемых для значения столбца, равным указанному числу байтов.
void setMaxRows(int max)
Задаёт максимальное число строк, которое может содержать объект RowSet, равным указанному числу.
void setNCharacterStream(int parameterIndex, Reader value)
Задаёт указанный параметр в команде объекта RowSet, присваивая ему объект Reader.
void setNCharacterStream(int parameterIndex, Reader value, long length)
Задаёт указанный параметр, присваивая ему объект Reader.
void setNCharacterStream(String parameterName, Reader value)
Задаёт указанный параметр, присваивая ему объект Reader.
void setNCharacterStream(String parameterName, Reader value, long length)
Устанавливает для указанного параметра объект Reader.
void setNClob(int parameterIndex, Reader reader)
Устанавливает для указанного параметра объект Reader.
void setNClob(int parameterIndex, Reader reader, long length)
Устанавливает для указанного параметра объект Reader.
void setNClob(int parameterIndex, NClob value)
Устанавливает для указанного параметра объект java.sql.NClob.
void setNClob(String parameterName, Reader reader)
Устанавливает для указанного параметра объект Reader.
void setNClob(String parameterName, Reader reader, long length)
Устанавливает для указанного параметра объект Reader.
void setNClob(String parameterName, NClob value)
Устанавливает для указанного параметра объект java.sql.NClob.
void setNString(int parameterIndex, String value)
Устанавливает для указанного параметра заданный объект String.
void setNString(String parameterName, String value)
Устанавливает для указанного параметра заданный объект String.
void setNull(int parameterIndex, int sqlType)
Устанавливает для указанного параметра в SQL-команде этого объекта RowSet значение SQL NULL.
void setNull(int paramIndex, int sqlType, String typeName)
Устанавливает для указанного параметра в SQL-команде этого объекта RowSet значение SQL NULL.
void setNull(String parameterName, int sqlType)
Устанавливает для указанного параметра значение SQL NULL.
void setNull(String parameterName, int sqlType, String typeName)
Устанавливает для указанного параметра значение SQL NULL.
void setObject(int parameterIndex, Object x)
Устанавливает для указанного параметра в команде этого объекта RowSet значение Java Object.
void setObject(int parameterIndex, Object x, int targetSqlType)
Устанавливает для указанного параметра в команде этого объекта RowSet значение Java Object.
void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength)
Устанавливает для указанного параметра в команде этого объекта RowSet заданное значение Java Object.
void setObject(String parameterName, Object x)
Устанавливает значение указанного параметра с помощью заданного объекта.
void setObject(String parameterName, Object x, int targetSqlType)
Устанавливает значение указанного параметра с помощью заданного объекта.
void setObject(String parameterName, Object x, int targetSqlType, int scale)
Устанавливает значение указанного параметра с помощью заданного объекта.
void setPassword(String password)
Устанавливает пароль базы данных для этого объекта RowSet в заданное значение String.
void setQueryTimeout(int seconds)
Устанавливает максимальное время в секундах, в течение которого драйвер будет ожидать выполнения оператора.
void setReadOnly(boolean value)
Устанавливает значение boolean, определяющее, доступен ли этот объект RowSet только для чтения.
void setRef(int i, Ref x)
Устанавливает для указанного параметра в команде этого объекта RowSet заданное значение Ref.
void setRowId(int parameterIndex, RowId x)
Устанавливает для указанного параметра заданный объект java.sql.RowId.
void setRowId(String parameterName, RowId x)
Устанавливает для указанного параметра заданный объект java.sql.RowId.
void setShort(int parameterIndex, short x)
Устанавливает для указанного параметра в команде этого объекта RowSet заданное значение Java short.
void setShort(String parameterName, short x)
Устанавливает для указанного параметра заданное значение Java short.
void setSQLXML(int parameterIndex, SQLXML xmlObject)
Устанавливает для указанного параметра заданный объект java.sql.SQLXML.
void setSQLXML(String parameterName, SQLXML xmlObject)
Устанавливает для указанного параметра заданный объект java.sql.SQLXML.
void setString(int parameterIndex, String x)
Устанавливает для указанного параметра в команде этого объекта RowSet заданное значение Java String.
void setString(String parameterName, String x)
Устанавливает для указанного параметра заданное значение Java String.
void setTime(int parameterIndex, Time x)
Устанавливает для указанного параметра в команде этого объекта RowSet заданное значение java.sql.Time.
void setTime(int parameterIndex, Time x, Calendar cal)
Устанавливает для указанного параметра в команде этого объекта RowSet заданное значение java.sql.Time.
void setTime(String parameterName, Time x)
Устанавливает для указанного параметра заданное значение java.sql.Time.
void setTime(String parameterName, Time x, Calendar cal)
Устанавливает для указанного параметра заданное значение java.sql.Time с помощью заданного объекта Calendar.
void setTimestamp(int parameterIndex, Timestamp x)
Устанавливает для указанного параметра в команде этого объекта RowSet заданное значение java.sql.Timestamp.
void setTimestamp(int parameterIndex, Timestamp x, Calendar cal)
Устанавливает для указанного параметра в команде этого объекта RowSet заданное значение java.sql.Timestamp.
void setTimestamp(String parameterName, Timestamp x)
Устанавливает для указанного параметра заданное значение java.sql.Timestamp.
void setTimestamp(String parameterName, Timestamp x, Calendar cal)
Устанавливает для указанного параметра заданное значение java.sql.Timestamp с помощью заданного объекта Calendar.
void setTransactionIsolation(int level)
Устанавливает уровень изоляции транзакций для этого объекта RowSet.
void setType(int type)
Устанавливает для этого объекта RowSet заданный тип.
void setTypeMap(Map<String,Class<?>> map)
Устанавливает заданный объект java.util.Map в качестве карты типов по умолчанию для этого объекта RowSet.
void setUrl(String url)
Устанавливает URL, который этот объект RowSet будет использовать при создании подключения с помощью DriverManager.
void setURL(int parameterIndex, URL x)
Устанавливает для указанного параметра заданное значение java.net.URL.
void setUsername(String name)
Устанавливает свойство имени пользователя для этого объекта RowSet в заданное значение String.

Методы, объявленные в интерфейсе Wrapper

isWrapperFor, unwrap
Модификатор и тип Метод Описание
boolean isWrapperFor(Class<?> iface)
Возвращает true, если этот объект реализует интерфейс, переданный в аргументе, или прямо либо косвенно является обёрткой объекта, который его реализует.
<T> T unwrap(Class<T> iface)
Возвращает объект, реализующий заданный интерфейс, чтобы обеспечить доступ к нестандартным методам или стандартным методам, не предоставляемым прокси-объектом.

Подробное описание полей

COMMIT_ON_ACCEPT_CHANGES

@Deprecated static final boolean COMMIT_ON_ACCEPT_CHANGES
Устарело.
Поскольку это поле является final (оно входит в интерфейс), его значение нельзя изменить.
Заставляет CachedRowSet объекта SyncProvider фиксировать изменения при вызове acceptChanges(). Если установлено значение false, изменения не будут зафиксированы, пока не будет вызван один из транзакционных методов интерфейса CachedRowSet.
См. также:
  • commit()
  • rollback()
  • Значения константных полей

Подробное описание методов

populate

void populate(ResultSet data) throws SQLException
Заполняет этот объект CachedRowSet данными из указанного объекта ResultSet.

Этот метод можно использовать вместо метода execute, если приложение подключено к открытому объекту ResultSet. Использование метода populate может быть эффективнее, чем использование версии метода execute без параметров, поскольку он не открывает новое соединение и не выполняет повторно команду этого объекта CachedRowSet. Использование метода populate удобнее по сравнению с использованием версии execute, принимающей объект ResultSet.

Параметры:
data — объект ResultSet, содержащий данные для чтения в этот объект CachedRowSet
Исключения:
SQLException — если передан null-объект ResultSet или этому объекту CachedRowSet не удается получить связанный объект ResultSetMetaData
См. также:
  • execute(Connection)
  • ResultSet
  • ResultSetMetaData

execute

void execute(Connection conn) throws SQLException
Заполняет этот объект CachedRowSet данными, используя указанное соединение для получения результирующего набора, из которого будут прочитаны данные. Этот метод должен закрывать все созданные им соединения с базой данных, чтобы обеспечить отключение этого объекта CachedRowSet, за исключением случаев чтения данных из источника данных или записи данных в него.

Для установления соединения с источником данных считыватель этого объекта CachedRowSet использует conn, чтобы выполнить команду rowset и прочитать данные из полученного объекта ResultSet в этот объект CachedRowSet. Этот метод также закрывает conn после заполнения этого объекта CachedRowSet.

Если этот метод вызывается, когда реализация уже заполнена, содержимое и метаданные сбрасываются и задаются заново. Кроме того, если этот метод вызывается до вызова метода acceptChanges для фиксации ожидающих обновлений, эти обновления теряются.

Параметры:
conn — стандартный объект JDBC Connection с допустимыми свойствами
Исключения:
SQLException — если передан недопустимый объект Connection или при установлении соединения с источником данных возникает ошибка
См. также:
  • populate(ResultSet)
  • Connection

acceptChanges

void acceptChanges() throws SyncProviderException
Передает источнику данных изменения строк, внесенные в этот объект CachedRowSet: обновления, вставки и удаления.

Для выполнения этой операции метод вызывает средство записи этого объекта CachedRowSet. Стандартные реализации CachedRowSet должны использовать синглтон SyncFactory для получения экземпляра SyncProvider, предоставляющего объект RowSetWriter (средство записи). Средство записи попытается передать источнику данных изменения, внесенные в этот объект CachedRowSet.

При успешном выполнении метода acceptChanges, помимо записи изменений в источник данных, значения текущей строки становятся равными значениям исходной строки.

В зависимости от уровня синхронизации используемой реализации SyncProvider, средство записи сравнит исходные значения со значениями в источнике данных, чтобы проверить наличие конфликтов. При возникновении конфликта реализация RIOptimisticProvider, например, выбрасывает SyncProviderException и ничего не записывает в источник данных.

Приложение может перехватить объект SyncProviderException и получить содержащийся в нем объект SyncResolver. Объект SyncResolver перечисляет конфликты для каждой строки и устанавливает блокировку источника данных, чтобы избежать новых конфликтов во время разрешения текущих. Кроме того, для каждого конфликта он предоставляет методы для его изучения и задания значения, которое должно быть сохранено в источнике данных. После разрешения всех конфликтов приложение должно снова вызвать метод acceptChanges, чтобы записать разрешенные значения в источник данных. Если все значения в источнике данных уже совпадают со значениями, которые нужно сохранить, метод acceptChanges ничего не делает.

Некоторые реализации поставщиков могут использовать блокировки, чтобы гарантировать отсутствие конфликтов. В таких случаях гарантируется, что средство записи успешно сохранит изменения в источнике данных при вызове метода acceptChanges. Этот метод можно вызвать сразу после вызова методов updateRow, insertRow или deleteRow, однако эффективнее вызывать его только один раз после внесения всех изменений, чтобы установить только одно соединение.

Примечание. Метод acceptChanges() определяет, имеет ли COMMIT_ON_ACCEPT_CHANGES значение true. Если да, все обновления при синхронизации фиксируются в источнике данных. В противном случае приложение должно явно вызвать методы commit() или rollback() в зависимости от ситуации.

Исключения:
SyncProviderException — если средство записи используемого поставщика синхронизации не может записать обновления обратно в источник данных
См. также:
  • acceptChanges(java.sql.Connection)
  • RowSetWriter
  • SyncFactory
  • SyncProvider
  • SyncProviderException
  • SyncResolver

acceptChanges

void acceptChanges(Connection con) throws SyncProviderException
Передает все изменения строк — обновления, вставки и удаления — источнику данных, лежащему в основе этого объекта CachedRowSet, используя указанный объект Connection для установления соединения с источником данных.

В другой версии метода acceptChanges соединение не передается, поскольку она использует объект Connection, уже определенный в объекте RowSet, то есть соединение, которое изначально использовалось для его заполнения.

Эта форма метода acceptChanges похожа на форму без аргументов, однако, в отличие от нее, ее можно использовать только тогда, когда базовый источник данных является источником данных JDBC. Обновленные свойства Connection должны использоваться методом SyncProvider для сброса конфигурации RowSetWriter и обеспечения корректной синхронизации содержимого объекта CachedRowSet.

При успешном выполнении метода acceptChanges, помимо записи изменений в источник данных, значения текущей строки становятся равными значениям исходной строки.

В зависимости от уровня синхронизации используемой реализации SyncProvider, средство записи сравнит исходные значения со значениями в источнике данных, чтобы проверить наличие конфликтов. При возникновении конфликта реализация RIOptimisticProvider, например, выбрасывает SyncProviderException и ничего не записывает в источник данных.

Приложение может перехватить объект SyncProviderException и получить содержащийся в нем объект SyncResolver. Объект SyncResolver перечисляет конфликты для каждой строки и устанавливает блокировку источника данных, чтобы избежать новых конфликтов во время разрешения текущих. Кроме того, для каждого конфликта он предоставляет методы для его изучения и задания значения, которое должно быть сохранено в источнике данных. После разрешения всех конфликтов приложение должно снова вызвать метод acceptChanges, чтобы записать разрешенные значения в источник данных. Если все значения в источнике данных уже совпадают со значениями, которые нужно сохранить, метод acceptChanges ничего не делает.

Некоторые реализации поставщиков могут использовать блокировки, чтобы гарантировать отсутствие конфликтов. В таких случаях гарантируется, что средство записи успешно сохранит изменения в источнике данных при вызове метода acceptChanges. Этот метод можно вызвать сразу после вызова методов updateRow, insertRow или deleteRow, однако эффективнее вызывать его только один раз после внесения всех изменений, чтобы установить только одно соединение.

Примечание. Метод acceptChanges() определяет, имеет ли COMMIT_ON_ACCEPT_CHANGES значение true. Если да, все обновления при синхронизации фиксируются в источнике данных. В противном случае приложение должно явно вызвать методы commit или rollback в зависимости от ситуации.

Параметры:
con — стандартный объект JDBC Connection
Исключения:
SyncProviderException — если средство записи используемого поставщика синхронизации не может записать обновления обратно в источник данных
См. также:
  • acceptChanges()
  • RowSetWriter
  • SyncFactory
  • SyncProvider
  • SyncProviderException
  • SyncResolver

restoreOriginal

void restoreOriginal() throws SQLException
Восстанавливает исходное значение этого объекта CachedRowSet, то есть значение, которое было до последнего набора изменений. Если в rowset не было изменений или был только один набор изменений, исходным значением является значение, которым был заполнен этот объект CachedRowSet; в противном случае исходным значением является значение, которое он имел непосредственно перед текущим значением.

При вызове этого метода реализация CachedRowSet должна обеспечить замену всех обновлений, вставок и удалений текущего экземпляра rowset предыдущими значениями. Кроме того, курсор должен быть перемещен на первую строку, а для уведомления всех зарегистрированных слушателей должно быть сгенерировано событие rowSetChanged.

Исключения:
SQLException — если при откате текущего значения этого объекта CachedRowSet к предыдущему значению возникает ошибка
См. также:
  • RowSetListener.rowSetChanged(RowSetEvent)

release

void release() throws SQLException
Освобождает текущее содержимое этого объекта CachedRowSet и отправляет событие rowSetChanged всем зарегистрированным прослушивателям. Все ожидающие обновления отбрасываются, и после вызова этого метода набор строк не содержит строк. Взаимодействие с базовым источником данных не происходит, а содержимое набора строк, метаданные и обновления содержимого не должны подлежать восстановлению.

Этот объект CachedRowSet должен блокироваться, пока его содержимое и связанные с ним обновления не будут полностью очищены, тем самым предотвращая «грязное» чтение другими компонентами, имеющими ссылку на этот объект RowSet. Кроме того, содержимое нельзя освободить, пока все компоненты, читающие этот объект CachedRowSet, не завершат чтение. После отправки события rowSetChanged этот объект CachedRowSet должен вернуться к обычному поведению.

Метаданные, включая свойства JDBC и свойства Synchronization SPI, сохраняются для дальнейшего использования. Важно, чтобы такие свойства, как свойство command, соответствовали исходному источнику данных, из которого изначально был создан этот объект CachedRowSet.

Этот метод очищает набор строк, в отличие от метода close, который помечает весь набор строк как доступный для восстановления, чтобы сборщик мусора мог освободить ресурсы набора строк в виртуальной машине Java.

Исключения:
SQLException — если при очистке содержимого этого объекта CachedRowSet произошла ошибка
См. также:
  • RowSetListener.rowSetChanged(RowSetEvent)
  • ResultSet.close()

undoDelete

void undoDelete() throws SQLException
Отменяет удаление текущей строки и уведомляет прослушивателей об изменении строки. После вызова этого метода текущая строка больше не помечена для удаления. Этот метод можно вызывать в любое время в течение жизненного цикла набора строк.

Кроме того, можно отменить удаление нескольких строк, изменяя положение курсора с помощью методов управления позицией курсора, таких как:

  • CachedRowSet.absolute
  • CachedRowSet.first
  • CachedRowSet.last
Исключения:
SQLException — если (1) текущая строка не была удалена или (2) курсор находится на строке вставки, перед первой строкой или после последней строки
См. также:
  • undoInsert()
  • ResultSet.cancelRowUpdates()

undoInsert

void undoInsert() throws SQLException
Немедленно удаляет текущую строку из этого объекта CachedRowSet, если строка была вставлена, а также уведомляет прослушивателей об изменении строки. Этот метод можно вызывать в любое время в течение жизненного цикла набора строк; если текущая строка не подпадает под ограничения, при которых выбрасывается исключение (см. ниже), вызов отменяет вставку текущей строки.

Кроме того, можно отменить вставку нескольких строк, изменяя положение курсора с помощью методов управления позицией курсора, таких как:

  • CachedRowSet.absolute
  • CachedRowSet.first
  • CachedRowSet.last
Исключения:
SQLException — если (1) текущая строка не была вставлена или (2) курсор находится перед первой строкой, после последней строки или на строке вставки
См. также:
  • undoDelete()
  • ResultSet.cancelRowUpdates()

undoUpdate

void undoUpdate() throws SQLException
Немедленно отменяет последнюю операцию обновления, если строка была изменена. Этот метод можно вызывать для отмены обновлений всех столбцов, пока все обновления строки не будут возвращены к состоянию, в котором они находились непосредственно перед последней синхронизацией (acceptChanges) или заполнением. Этот метод также можно вызывать при выполнении обновлений строки вставки.

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

Исключения:
SQLException — если курсор находится перед первой строкой или после последней строки этого объекта CachedRowSet
См. также:
  • undoDelete()
  • undoInsert()
  • ResultSet.cancelRowUpdates()

columnUpdated

boolean columnUpdated(int idx) throws SQLException
Показывает, был ли обновлён указанный столбец в текущей строке этого объекта CachedRowSet.
Параметры:
idx — int, задающий столбец, для которого проверяется наличие обновлений
Возвращает:
true, если указанный столбец был явно обновлён; в противном случае — false
Исключения:
SQLException — если курсор находится на строке вставки, перед первой строкой или после последней строки
См. также:
  • DatabaseMetaData.updatesAreDetected(int)

columnUpdated

boolean columnUpdated(String columnName) throws SQLException
Показывает, был ли обновлён указанный столбец в текущей строке этого объекта CachedRowSet.
Параметры:
columnName — объект String, задающий имя столбца, для которого проверяется наличие обновлений
Возвращает:
true, если столбец был явно обновлён; в противном случае — false
Исключения:
SQLException — если курсор находится на строке вставки, перед первой строкой или после последней строки
См. также:
  • DatabaseMetaData.updatesAreDetected(int)

toCollection

Collection<?> toCollection() throws SQLException
Преобразует этот объект CachedRowSet в объект Collection, содержащий все данные этого объекта CachedRowSet. Благодаря абстрактной природе платформы Collection реализации могут выбирать способ представления этого объекта Collection. Каждая строка должна быть полностью представлена либо универсальной реализацией Collection, либо специализированной реализацией Collection, например объектом TreeMap или объектом Vector. Значение столбца SQL NULL должно быть представлено в языке программирования Java как null.

Стандартная эталонная реализация интерфейса CachedRowSet использует объект TreeMap для набора строк, а значения каждой строки хранятся в объектах Vector. Предполагается, что большинство реализаций будут поступать так же.

Тип коллекции TreeMap гарантирует, что карта будет упорядочена по возрастанию ключей в соответствии с естественным порядком для класса ключа. Каждому ключу соответствует объект Vector, представляющий одну строку объекта RowSet. Следовательно, размер каждого объекта Vector должен точно совпадать с количеством столбцов в объекте RowSet. Ключ, используемый коллекцией TreeMap, определяется реализацией, которая может использовать ключевой набор, доступный во внутренней табличной структуре RowSet благодаря ключу, уже заданному либо в самом объекте RowSet, либо в базовых данных SQL.

Возвращает:
объект Collection, содержащий значения каждой строки этого объекта CachedRowSet
Исключения:
SQLException — если при создании коллекции произошла ошибка
См. также:
  • toCollection(int)
  • toCollection(String)

toCollection

Collection<?> toCollection(int column) throws SQLException
Преобразует указанный столбец этого объекта CachedRowSet в объект Collection. Благодаря абстрактной природе платформы Collection реализации могут выбирать способ представления этого объекта Collection. Каждое значение столбца должно быть полностью представлено либо универсальной реализацией Collection, либо специализированной реализацией Collection, например объектом Vector. Значение столбца SQL NULL должно быть представлено в языке программирования Java как null.

Стандартная эталонная реализация использует объект Vector для хранения значений столбца, и предполагается, что большинство реализаций будут поступать так же. Если используется объект Vector, его размер должен точно совпадать с количеством строк в этом объекте CachedRowSet.

Параметры:
column — int, указывающий столбец, значения которого следует представить в объекте Collection
Возвращает:
объект Collection, содержащий значения, хранящиеся в указанном столбце этого объекта CachedRowSet
Исключения:
SQLException — если при создании коллекции произошла ошибка или указан недопустимый идентификатор столбца
См. также:
  • toCollection()
  • toCollection(String)

toCollection

Collection<?> toCollection(String column) throws SQLException
Преобразует указанный столбец этого объекта CachedRowSet в объект Collection. Благодаря абстрактной природе платформы Collection реализации могут выбирать способ представления этого объекта Collection. Каждое значение столбца должно быть полностью представлено либо универсальной реализацией Collection, либо специализированной реализацией Collection, например объектом Vector. Значение столбца SQL NULL должно быть представлено в языке программирования Java как null.

Стандартная эталонная реализация использует объект Vector для хранения значений столбца, и предполагается, что большинство реализаций будут поступать так же. Если используется объект Vector, его размер должен точно совпадать с количеством строк в этом объекте CachedRowSet.

Параметры:
column — объект String, задающий имя столбца, значения которого следует представить в коллекции
Возвращает:
объект Collection, содержащий значения, хранящиеся в указанном столбце этого объекта CachedRowSet
Исключения:
SQLException — если при создании коллекции произошла ошибка или указан недопустимый идентификатор столбца
См. также:
  • toCollection()
  • toCollection(int)

getSyncProvider

SyncProvider getSyncProvider() throws SQLException
Получает реализацию SyncProvider для этого объекта CachedRowSet. Внутри этот метод используется набором строк для инициирования операций чтения или записи между набором строк и источником данных. Например, набору строк может потребоваться получить ссылку на средство чтения набора строк (объект RowSetReader) из SyncProvider, чтобы заполнить набор строк.
     RowSetReader rowsetReader = null;
     SyncProvider provider =
         SyncFactory.getInstance("javax.sql.rowset.provider.RIOptimisticProvider");
         if (provider instanceof RIOptimisticProvider) {
             rowsetReader = provider.getRowSetReader();
         }
 
Предположим, что rowsetReader — это закрытое доступное поле в реализации набора строк; когда приложение вызывает метод execute, тот, в свою очередь, вызывает метод readData средства чтения, чтобы заполнить объект RowSet.
     rowsetReader.readData((RowSetInternal)this);
 

Кроме того, приложение может использовать объект SyncProvider, возвращаемый этим методом, для вызова методов, возвращающих сведения об объекте SyncProvider, включая сведения о поставщике, версии, идентификаторе поставщика, уровне синхронизации и установленных блокировках.

Возвращает:
объект SyncProvider, заданный при создании экземпляра набора строк, или поставщик по умолчанию, если он не был задан
Исключения:
SQLException — если при возврате объекта SyncProvider произошла ошибка
См. также:
  • setSyncProvider(String)

setSyncProvider

void setSyncProvider(String provider) throws SQLException
Устанавливает для объекта CachedRowSet объект SyncProvider, указанный в параметре. Этот метод позволяет сбросить объект SyncProvider.

Реализация CachedRowSet всегда должна создаваться с доступным механизмом SyncProvider, однако бывают случаи, когда сброс объекта SyncProvider желателен или необходим. Например, приложение может некоторое время использовать объект SyncProvider по умолчанию, а затем выбрать поставщика, который недавно стал доступен и лучше соответствует его потребностям.

Сброс объекта SyncProvider приводит к тому, что объект RowSet запрашивает новую реализацию SyncProvider у SyncFactory. В результате сбрасываются все предыдущие соединения и связи с исходным источником данных, что может существенно изменить поведение синхронизации отключенного набора строк.

Параметры:
provider — объект String, содержащий полное имя класса реализации SyncProvider
Исключения:
SQLException — если при попытке сбросить реализацию SyncProvider возникает ошибка
См. также:
  • getSyncProvider()

size

int size()
Возвращает количество строк в объекте CachedRowSet.
Возвращает:
количество строк в наборе строк

setMetaData

void setMetaData(RowSetMetaData md) throws SQLException
Задает метаданные для объекта CachedRowSet с помощью переданного объекта RowSetMetaData. При чтении содержимого набора строк объект RowSetReader создает объект RowSetMetaData и инициализирует его с помощью методов реализации RowSetMetaData. В эталонной реализации используется класс RowSetMetaDataImpl. Когда чтение содержимого набора строк завершено, этот метод вызывается внутри программы для передачи объекта RowSetMetaData набору строк.
Параметры:
md — объект RowSetMetaData, содержащий метаданные о столбцах объекта CachedRowSet
Исключения:
SQLException — если набору строк переданы недопустимые метаданные

getOriginal

ResultSet getOriginal() throws SQLException
Возвращает объект ResultSet, содержащий исходное значение объекта CachedRowSet.

Курсор объекта ResultSet должен быть установлен перед первой строкой. Кроме того, возвращаемый объект ResultSet должен иметь следующие свойства:

  • ResultSet.TYPE_SCROLL_INSENSITIVE
  • ResultSet.CONCUR_UPDATABLE

Исходное значение объекта RowSet — это значение, которое он имел до последней синхронизации с базовым источником данных. Если синхронизаций не было, исходным значением будет значение, которым был заполнен объект RowSet. Этот метод вызывается внутри программы при вызове приложением метода acceptChanges, если объект SyncProvider реализован для проверки конфликтов. В этом случае средство записи сравнивает исходное значение со значением, находящимся в данный момент в источнике данных, чтобы проверить наличие конфликтов.

Возвращает:
объект ResultSet, содержащий исходное значение объекта CachedRowSet
Исключения:
SQLException — если при создании объекта ResultSet возникает ошибка

getOriginalRow

ResultSet getOriginalRow() throws SQLException
Возвращает объект ResultSet, содержащий исходное значение только текущей строки объекта CachedRowSet.

Курсор объекта ResultSet должен быть установлен перед первой строкой. Кроме того, возвращаемый объект ResultSet должен иметь следующие свойства:

  • ResultSet.TYPE_SCROLL_INSENSITIVE
  • ResultSet.CONCUR_UPDATABLE
Возвращает:
исходный результирующий набор для строки
Исключения:
SQLException — если текущая строка отсутствует
См. также:
  • setOriginalRow()

setOriginalRow

void setOriginalRow() throws SQLException
Задает текущую строку объекта CachedRowSet в качестве исходной.

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

Вызов setOriginalRow необратим.

Исключения:
SQLException — если текущая строка отсутствует или при сбросе содержимого исходной строки возникает ошибка
См. также:
  • getOriginalRow()

getTableName

String getTableName() throws SQLException
Возвращает идентификатор объекта (таблицы), использованного для создания объекта CachedRowSet. Это имя можно задавать несколько раз; спецификация не ограничивает количество таких вызовов и не определяет, должны ли стандартные реализации отслеживать предыдущие имена таблиц.
Возвращает:
объект String с именем таблицы, являющейся источником данных для объекта CachedRowSet, или null, если имя таблицы не задано
Исключения:
SQLException — если при получении имени таблицы возникает ошибка
См. также:
  • ResultSetMetaData.getTableName(int)

setTableName

void setTableName(String tabName) throws SQLException
Задает идентификатор таблицы, из которой получен объект CachedRowSet, используя указанное имя таблицы. Средство записи использует это имя, чтобы определить, какую таблицу использовать при сравнении значений в источнике данных со значениями объекта CachedRowSet во время попытки синхронизации. Идентификатор таблицы также указывает, куда следует записывать измененные значения объекта CachedRowSet.

Реализация объекта CachedRowSet может получить имя таблицы внутри программы из объекта RowSetMetaDataImpl.

Параметры:
tabName — объект String, указывающий таблицу, из которой получен объект CachedRowSet; не может быть null, но может быть пустой строкой
Исключения:
SQLException — если при задании имени таблицы возникает ошибка или tabName имеет значение null
См. также:
  • RowSetMetaData.setTableName(int, String)
  • RowSetWriter
  • SyncProvider

getKeyColumns

int[] getKeyColumns() throws SQLException
Возвращает массив, содержащий один или несколько номеров столбцов, указывающих столбцы, которые образуют ключ для уникальной идентификации строки в объекте CachedRowSet.
Возвращает:
массив с номерами столбцов, указывающими, какие столбцы образуют первичный ключ строки объекта CachedRowSet. Если ни один столбец не является частью первичного ключа, массив должен быть пустым.
Исключения:
SQLException — если объект CachedRowSet пуст
См. также:
  • setKeyColumns(int[])
  • Joinable.getMatchColumnIndexes()
  • Joinable.getMatchColumnNames()

setKeyColumns

void setKeyColumns(int[] keys) throws SQLException
Задает полю keyCols объекта CachedRowSet переданный массив номеров столбцов, образующих ключ для уникальной идентификации строки в объекте CachedRowSet.

Если объект CachedRowSet становится частью объекта JoinRowSet, ключи, заданные этим методом, и связанные с ними ограничения сохраняются, если указанные столбцы ключа также становятся столбцами сопоставления.

Параметры:
keys — массив значений int, указывающих столбцы, образующие первичный ключ объекта CachedRowSet; каждый элемент массива должен быть больше 0 и меньше или равен количеству столбцов в этом наборе строк
Исключения:
SQLException — если какое-либо из чисел в переданном массиве недопустимо для этого набора строк
См. также:
  • getKeyColumns()
  • Joinable.setMatchColumn(String)
  • Joinable.setMatchColumn(int)

createShared

RowSet createShared() throws SQLException
Возвращает новый объект RowSet, использующий те же данные, что и объект CachedRowSet. Фактически оба объекта CachedRowSet имеют курсор, указывающий на одни и те же данные. Поэтому любые изменения, внесенные дубликатом, видны исходному объекту и всем остальным дубликатам, так же как изменения исходного объекта видны всем его дубликатам. Если дубликат вызывает метод, изменяющий базовые данные, этот метод уведомляет всех зарегистрированных слушателей так же, как если бы его вызвал исходный объект CachedRowSet.

Кроме того, любой объект RowSet, созданный этим методом, будет иметь те же свойства, что и объект CachedRowSet. Например, если объект CachedRowSet доступен только для чтения, все его дубликаты также будут доступны только для чтения. Если ему разрешить обновление, дубликаты также станут доступными для обновления.

ПРИМЕЧАНИЕ. Если несколько потоков обращаются к объектам RowSet, созданным методом createShared(), для обеспечения целостности общих данных предусмотрено следующее поведение: чтение и запись во все общие объекты RowSet должны выполняться последовательно между каждым объектом и единой базовой табличной структурой.

Возвращает:
новый общий объект RowSet, обладающий теми же свойствами, что и объект CachedRowSet, и имеющий курсор, указывающий на те же данные
Исключения:
SQLException — если возникает ошибка или клонирование не поддерживается базовой платформой
См. также:
  • RowSetEvent
  • RowSetListener

createCopy

CachedRowSet createCopy() throws SQLException
Создает объект RowSet, представляющий собой глубокую копию данных объекта CachedRowSet. В отличие от объекта RowSet, созданного вызовом createShared, изменения, внесенные в копию исходного объекта RowSet, не должны быть видны исходному объекту RowSet. Кроме того, любые слушатели событий, зарегистрированные для исходного объекта RowSet, не должны распространять свое действие на новые копии RowSet. Также должны сохраняться все установленные ограничения.
Возвращает:
новый объект RowSet, являющийся глубокой копией объекта CachedRowSet и полностью независимый от объекта CachedRowSet
Исключения:
SQLException — если при создании копии объекта CachedRowSet возникает ошибка
См. также:
  • createShared()
  • createCopySchema()
  • createCopyNoConstraints()
  • RowSetEvent
  • RowSetListener

createCopySchema

CachedRowSet createCopySchema() throws SQLException
Создает объект CachedRowSet, являющийся пустой копией этого объекта CachedRowSet. Копия не должна содержать никаких данных, а должна лишь представлять структуру таблицы исходного объекта CachedRowSet. Кроме того, ограничения первичного или внешнего ключа, установленные в исходном объекте CachedRowSet, должны также применяться к новому пустому объекту CachedRowSet. В отличие от объекта RowSet, созданного в результате вызова метода createShared, изменения, внесенные в копию этого объекта CachedRowSet с помощью метода createCopySchema, не должны быть видны ему.

Приложения могут создать объект WebRowSet на основе объекта CachedRowSet, возвращенного этим методом, чтобы экспортировать определение схемы RowSet в XML для последующего использования.

Возвращает:
Пустая копия этого объекта CachedRowSet
Выбрасывает:
SQLException — если при клонировании структуры этого объекта CachedRowSet произошла ошибка
См. также:
  • createShared()
  • createCopySchema()
  • createCopyNoConstraints()
  • RowSetEvent
  • RowSetListener

createCopyNoConstraints

CachedRowSet createCopyNoConstraints() throws SQLException
Создает объект CachedRowSet, являющийся глубокой копией данных этого объекта CachedRowSet, но независимый от него. В отличие от объекта RowSet, созданного в результате вызова метода createShared, изменения, внесенные в копию этого объекта CachedRowSet, не должны быть видны ему. Кроме того, прослушиватели событий, зарегистрированные для этого объекта CachedRowSet, не должны распространять свое действие на новый объект RowSet. Также любые ограничения, установленные для этого объекта CachedRowSet, не должны сохраняться в копии.
Возвращает:
новый объект CachedRowSet, являющийся глубокой копией этого объекта CachedRowSet и полностью независимый от этого объекта CachedRowSet
Выбрасывает:
SQLException — если при создании копии этого объекта CachedRowSet произошла ошибка
См. также:
  • createCopy()
  • createShared()
  • createCopySchema()
  • RowSetEvent
  • RowSetListener

getRowSetWarnings

RowSetWarning getRowSetWarnings() throws SQLException
Получает первое предупреждение, выданное при вызовах для этого объекта RowSet. Последующие предупреждения для этого объекта RowSet будут добавлены в цепочку объекта RowSetWarning, возвращаемого этим методом. Цепочка предупреждений автоматически очищается при каждом чтении новой строки. Этот метод нельзя вызывать для закрытого объекта RowSet; в противном случае будет выброшено исключение SQLException.
Возвращает:
RowSetWarning — первый выданный объект RowSetWarning или null, если предупреждений нет
Выбрасывает:
SQLException — если этот метод вызван для закрытого RowSet
См. также:
  • RowSetWarning

getShowDeleted

boolean getShowDeleted() throws SQLException
Возвращает значение boolean, указывающее, отображаются ли помеченные для удаления строки среди текущих строк. Если возвращается true, удаленные строки видны среди текущих строк. Если возвращается false, строки не отображаются среди текущих строк. Значение по умолчанию — false.

Стандартные реализации RowSet могут ограничивать это поведение по соображениям безопасности или для лучшего соответствия определенным сценариям развертывания. Это определяется реализацией и не является стандартным поведением.

Примечание. Возможность отображения удаленных строк усложняет работу некоторых стандартных методов JDBC RowSet. Однако большинство пользователей RowSet могут просто не учитывать эту особенность, поскольку воспользоваться ею, вероятно, потребуется лишь узкоспециализированным приложениям.

Возвращает:
true, если удаленные строки видны; в противном случае — false
Выбрасывает:
SQLException — если реализация RowSet не может определить, видны ли строки, помеченные для удаления
См. также:
  • setShowDeleted(boolean)

setShowDeleted

void setShowDeleted(boolean b) throws SQLException
Устанавливает для свойства showDeleted указанное значение boolean, определяющее, отображаются ли помеченные для удаления строки среди текущих строк. Если задано значение true, удаленные строки сразу отображаются среди текущих. Если задано значение false, удаленные строки не отображаются среди текущих.
Параметры:
b — true, если удаленные строки следует отображать; в противном случае — false
Выбрасывает:
SQLException — если реализация RowSet не может изменить настройку отображения удаленных строк
См. также:
  • getShowDeleted()

commit

void commit() throws SQLException
CachedRowSet объект содержит в своем SyncProvider объект Connection, полученный из ResultSet или из свойств JDBC, переданных его конструкторам. Этот метод оборачивает метод фиксации Connection, обеспечивая поддержку гибкого управления транзакциями с автоматической фиксацией или без нее.

Делает постоянными все изменения, внесенные методом acceptChanges() после предыдущей фиксации или отката. Этот метод следует использовать только при отключенном режиме автоматической фиксации.

Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных или объект Connection в этом CachedRowSet находится в режиме автоматической фиксации
См. также:
  • Connection.setAutoCommit(boolean)

rollback

void rollback() throws SQLException
CachedRowSet объект содержит в своем SyncProvider объект Connection, полученный из исходного ResultSet или из свойств JDBC, переданных ему.

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

Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных или объект Connection в этом CachedRowSet находится в режиме автоматической фиксации.

rollback

void rollback(Savepoint s) throws SQLException
CachedRowSet объект содержит в своем SyncProvider объект Connection, полученный из исходного ResultSet или из свойств JDBC, переданных ему.

Отменяет все изменения, внесенные в текущую транзакцию, до последней контрольной точки транзакции Savepoint. Этот метод следует использовать только при отключенном режиме автоматической фиксации.

Параметры:
s — контрольная точка транзакции Savepoint
Выбрасывает:
SQLException — если произошла ошибка доступа к базе данных или объект Connection в этом CachedRowSet находится в режиме автоматической фиксации.

rowSetPopulated

void rowSetPopulated(RowSetEvent event, int numRows) throws SQLException
Уведомляет зарегистрированных слушателей о том, что объект RowSet в указанном объекте RowSetEvent заполнил дополнительные строки. Параметр numRows гарантирует, что это событие будет генерироваться через каждые numRow.

Источник события можно получить с помощью метода event.getSource.

Параметры:
event — объект RowSetEvent, содержащий объект RowSet, являющийся источником событий
numRows — при заполнении — интервал в количестве строк, по достижении которого должен генерироваться вызов CachedRowSet populated; значение по умолчанию — ноль; значение не может быть меньше fetchSize или нуля
Выбрасывает:
SQLException — numRows < 0 or numRows < getFetchSize()

populate

void populate(ResultSet rs, int startRow) throws SQLException
Заполняет этот объект CachedRowSet данными из указанного объекта ResultSet. Этот метод связан с методом populate(ResultSet), но дополнен параметром, задающим начальную позицию в объекте ResultSet, откуда следует заполнять экземпляр CachedRowSet.

Этот метод можно использовать вместо метода execute, если приложение подключено к открытому объекту ResultSet. Использование метода populate может быть эффективнее, чем использование варианта метода execute без параметров, поскольку он не открывает новое соединение и не выполняет повторно команду этого объекта CachedRowSet. Использование метода populate удобнее по сравнению с использованием варианта execute, принимающего объект ResultSet.

Параметры:
rs — объект ResultSet, содержащий данные для чтения в этот объект CachedRowSet
startRow — позиция в объекте ResultSet, с которой следует начать заполнение записей в этом объекте CachedRowSet
Выбрасывает:
SQLException — если передан объект ResultSet со значением null или этот объект CachedRowSet не может получить связанный объект ResultSetMetaData
См. также:
  • execute(Connection)
  • populate(ResultSet)
  • ResultSet
  • ResultSetMetaData

setPageSize

void setPageSize(int size) throws SQLException
Задает размер страницы для объекта CachedRowSet. Объект CachedRowSet можно настроить так, чтобы он заполнялся порциями строк размером со страницу. При вызове populate() или execute() объект CachedRowSet получает следующую страницу согласно исходному SQL-запросу, использованному для заполнения RowSet.
Параметры:
size — размер страницы для объекта CachedRowSet
Выбрасывает:
SQLException — если при установке размера страницы CachedRowSet произошла ошибка или размер страницы меньше 0.

getPageSize

int getPageSize()
Возвращает размер страницы для объекта CachedRowSet
Возвращает:
размер страницы int

nextPage

boolean nextPage() throws SQLException
Переходит к следующей странице объекта CachedRowSet. При этом реализация CachedRowSet получает строки следующего размера страницы и заполняет RowSet, если в области действия исходного SQL-запроса, использованного для заполнения RowSet, остались строки.
Возвращает:
true, если есть другие страницы; false, если это последняя страница
Выбрасывает:
SQLException — если при получении следующей страницы произошла ошибка или если этот метод вызван преждевременно, до вызова populate или execute.

previousPage

boolean previousPage() throws SQLException
Уменьшает номер текущей страницы CachedRowSet. Это заставляет реализацию CachedRowSet получить строки предыдущего размера страницы и заполнить RowSet. Количество строк, возвращаемых на предыдущей странице, всегда должно оставаться в пределах исходного SQL-запроса, использованного для заполнения RowSet.
Возвращает:
true, если предыдущая страница успешно получена; false, если это первая страница.
Вызывает исключение:
SQLException — если при получении предыдущей страницы произошла ошибка или если этот метод вызван преждевременно, до вызова populate или execute.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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