Контрольные по математике | Лабораторная работа по java | Matematiku5
Вузы по математике Готовые работы по математике Как писать работы по математике Примеры решения задач по математике Решить задачу по математике online

Лабораторная работа по java


Лабораторная работа № 1

Знакомство с JDBC

Импортируйте проект HSQLDemo из каталога Examples

Проект представляет собой простейшее приложение с консольным интерфейсом для работы с базой данных сотрудников. Используется СУБД HyperSQL в режиме «in memoty, таблица Persons следующей структуры:

Поле

Тип

Назначение

Id

Integer, auto-increment

Идентификатор (ПК)

name

Varchar(30)

Имя

lastname

Varchar(30)

Фамилия

age

Integer

Возраст

payment

Integer

Зар. плата

HyperSQL (также используются наименования HSQLDB, Hypersonic SQL, http://hsqldb. org) – небольшая СУБД с открытыми исходными текстами, написанная полностью на Java и, благодаря этому, легко интернирующаяся в Java-приложения. Часто используется на этапах разработки и тестирования приложений из-за высокой скорости и легковесности. Для подключения СУБД к приложению достаточно одной библиотеки hsqldb. jar. Поддерживается три режима работы:

— стандартный режим «клиент-сервер». Сервер запускается посредством исполняемого файла binrunServer. bat, приложение должно подключаться к серверу в качестве клиента. Для использования этого режима строка подключения должна выглядеть следующим образом:

jdbc:hsqldb:hsql://сервер/имя_бд, например: jdbc:hsqldb:hsql://localhost/persons

— режим «файл-сервер». Для работы в этом режиме сервер не требуется, база данных хранится в каталоге на диске. БД и система управления ней могут переноситься вместе с приложением. Используется следующая строка подключения:

jdbc:hsqldb:file:имя_бд, например: jdbc:hsqldb:file:db/persons (БД persons будет создана в подкаталоге db каталога проекта)

— режим «in memory» (в памяти). В этом режиме БД находится только в оперативной памяти во время работы приложения, т. е. создается при запуске приложения и уничтожается при его завершении. Данные между запусками не сохраняются. В таком режиме обеспечивается наивысшая скорость работы, поэтому данный режим используется при тестировании приложений. Используется следующая строка подключения:

jdbc:hsqldb:mem:имя_бд, например: jdbc:hsqldb:mem:persons

Для управления БД (просмотр данных, создание таблиц, ввод и обновление данных) можно использовать средства платформы Eclipse либо встроенные средства HyperSQL. В каталоге bin находятся исполняемые файлы runManager. bat и runManagerSwing. bat, позволяющие запустить один из вариантов приложения для управления БД.

В проекте реализованы основные CRUD (Create, Read, Update, Delete) операции с базой данных. Найдите методы, выполняющие каждую из этих операций, изучите их принцип работы.

Для удобства база данных при запуске создается (метод createTables()) и наполняется начальными данными (метод initData()). Найдите эти методы и изучите их принцип работы.

Хотя приложение работоспособно, оно обладает существенным недостатком: в одном классе смешан код представления (интерфейса пользователя) и доступа к данным. Это существенно затрудняет совместную разработку и последующую поддержку приложения.

Устраним этот недостаток, разделив классы, работающие с базой данных, и реализующие пользовательский интерфейс. Определите, какие методы должны относиться к какому классу, попробуйте начать разделение (рекомендуется создать отдельный класс для работы с БД, а в классе DataProgram оставить пользовательский интерфейс)

Импортируйте проект HSQLDemo2, в котором реализовано разделение функционала по двум классам, сравните ваше решение с предложенным.

Изучите устройство класса DataManager, обратите внимание на то, есть ли отличия от аналогичных методов предыдущего примера.

Данный проект, несмотря на улучшения, все еще обладает определенными недостатками:

— класс интерфейса пользователя (DataGui) все еще тесно связан с классом DataManager, а также к конкретной технологии доступа к данным (в частности, обратите внимание, что он работает с классом ResultSet из пакета JDBC)

— приложение не является объектно-ориентированным: работа осуществляется с табличными данными, а не объектными структурами; предметная область нормально не представлена, т. е. бизнес-логику выделить не удастся

Для устранения этих недостатков предлагается следующее:

— Введем класс Person, представляющий собой доменную модель приложения (класс предметной области, бизнес-логику)

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

В результате должны получиться независимый от технологии доступа к данным класс интерфейса пользователя, и независимый от интерфейса класс доступа к данным.

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

Задание на лабораторную работу

1. Реализуйте класс Учебный курс (Course) со следующими полями:

·  название (например, Технологии Java)

·  год изучения (например, 1)

·  трудоемкость (credits) (например, 6)

Реализуйте класс Образовательная программа (StudyProgram) со следующими полями:

·  название (например, Управление данными)

·  код направления подготовки (например, 090402)

·  название направления подготовки (например, Информационные системы и технологии)

·  уровень образования (например, Магистратура)

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

2. Создайте в базе данных таблицы Course и StudyProgram с полями, соответствующими ранее созданным классам, для хранения информации об образовательных программах и курсах. Реализуйте класс DataManager, инкапсулирующий операции работы с таблицами БД и обеспечивающий вышестоящему уровню работу с объектами классов Course и StudyProgram. Реализуйте минимум следующие операции (методы):

·  поиск курса по id

·  получение списка всех учебных курсов, упорядоченных по названию

·  получение списка всех учебных курсов, упорядоченных по году изучения

·  получение списка всех учебных курсов, составляющих определенную образовательную программу

·  получение списка всех образовательных программ

·  получение списка всех образовательных программ заданного уровня подготовки

·  поиск образовательных программ по коду направления подготовки

·  создание образовательной программы

·  создание учебного курса

·  редактирование образовательной программы

·  редактирование учебного курса

·  удаление образовательной программы

·  удаление учебного курса

3. Реализуйте приложение, демонстрирующее работу созданных классов

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020

А ты боишься COVID-19?

 Пройди опрос и получи промокод