Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_22 Головков И.Е. 12002108

.docx
Скачиваний:
0
Добавлен:
26.06.2024
Размер:
554.05 Кб
Скачать

ФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное УЧРЕЖДЕНИЕ ВЫСШЕГО образования

«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ

ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)

ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ

Кафедра прикладной информатики и информационных технологий

Отчет по лабораторной работе № 22

Тема работы « Фильтрация, поиск и сортировка данных таблиц БД в разрабатываемой информационной системе»

по дисциплине «Управление данными»

студента очного отделения

2 курса 12002108 группы

Головкова Игоря Евгеньевича

Проверил:

Ассистент кафедры прикладной информатики и информационных технологий Сухарев М. А.

БЕЛГОРОД, 2023

   Цель работы

1.   Изучить технологию доступа к данным в среде разработки информационных систем.

2.   Изучить компоненты среды, предназначенные для фильтрации, поиска и сортировки данных в таблицах базы данных.

3.   Научиться создавать приложения в среде разработки, обеспечивающие фильтрацию, поиск и сортировку данных в таблицах базы данных.

Рисунок 1– Логическая модель БД

Рисунок 2 – Физическая модель БД

Ход работы:

Рисунок 4 – Таблица без фильтрации

Рисунок 4 – Фильтрация данных

Рисунок 5 – Поиск данных

Рисунок 6 – Сортировка данных (по столбцу name в порядке, обратном алфавитному)

Рисунок 7 – Фильтрация, поиск и сортировкаданных

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

Листинг кода для фильтрации данных:

public String appendWhereAndOrderByToQuery (TextField whereTextField, ComboBox orderByComboBox, CheckBox ascCheckBox, String sqlQuery) { // Добавляем WHERE, если есть if (!whereTextField.getText().isEmpty()) { String whereCondition = whereTextField.getText().trim(); // Упрощение синтаксиса при вводе whereCondition = whereCondition.replaceAll(",", " AND "); whereCondition = whereCondition.replaceAll(" и ", " AND "); whereCondition = whereCondition.replaceAll(" или ", " OR "); // Поиск даты Pattern pattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}"); Matcher matcher = pattern.matcher(whereCondition); while (matcher.find()) { String date = matcher.group(); whereCondition = whereCondition.replace(date, "'" + date + "'"); } // Поиск строковых значений столбцов pattern = Pattern.compile("(?<==\\s)[\\p{L}\\p{Zs}]+(?=\\s(OR|AND|$)|$)", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); matcher = pattern.matcher(whereCondition); whereCondition = matcher.replaceAll("'$0'"); sqlQuery += " WHERE " + whereCondition; } // Добавляем ORDER BY, если есть if (orderByComboBox.getValue() != null && !orderByComboBox.getValue().equals("")) { sqlQuery += " ORDER BY " + orderByComboBox.getValue(); if (!ascCheckBox.isSelected()) { sqlQuery += " DESC "; } else { sqlQuery += " ASC "; } } return sqlQuery; }