Язык SQL

Результирующее множество фильтром


Показанное с результирующее множество фильтром, упорядоченное по полю accountld, создается путем добавления выражения фильтра в виде предложения where в оператор выборки select.

select  from Customer where state = ‘FL’ order by accountld

Очевидно, что результирующее множество может быть создано для любого оператора select. Приведенный пример является очень простым случаем.

Когда пользователь вводит новое значение фильтра и щелкает на кнопке Filter, приложение должно вызвать CustomerEditor. selectRows, как показано в строках 2—10 на 10.4, чтобы создать новый оператор выборки select и новое результирующее множество. Предыдущее результирующее множество закрывается (строка 7), и Statement используется для создания нового результирующего множества (строка 8). Заметим, что все методы класса CustomerEditor объявлены как выдающие SQLException, деталь, не приводившаяся в представленном на 10.3 коде из соображений краткости.

1 public class CustomerEditor { // некоторые методы

2 public void selectRows(String filter) throws SQLException {

3 //создание нового результирующего множества //и позиционирование его на первой строке

4 selectStatement = "select  from Customer";

5 if (filter!=null) selectStatement += (" where "+filter);

6 selectStatement += " order by accountld";

7 result.close(); //закрытие предыдущего результирующего множества

8 result = stmt.executeQuery(selectStatement);

9 result.first();

10 }

11 public Customer getCustomer () throws SQLException {

12 return new Customer(result); //загрузка из курсора

13 }

14 public void moveForward() throws SQLException {

15 if (!result.next()) result.last();

16 }

17 public void moveAbsolute(int index) throws SQLException {

18 if (!result.absolute(index)) result.last();

19 }

20 }

Комментарии закрыты