
Лаб_22 Головков И.Е. 12002108
.docxФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное УЧРЕЖДЕНИЕ ВЫСШЕГО образования
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ
Кафедра прикладной информатики и информационных технологий
Отчет по лабораторной работе № 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; }