Розробка уроку — практичної роботи

Тема: cтворення програмного проекта мовою Java простої бази даних «Учні» з даними про прізвище, ім'я, вік та успішність, забезпечення виведення даних про учнів за зазначиними критеріями.

Мета: створити програму мовою Java для роботи з базою даних.

Учні повинні знати:

Учні повинні мати уявлення про типи моделей БД.

Учні повинні вміти:

Обладнання: комп'ютери зі встановаленими ОС і середовищем програмування Intelij IDEA або Eclipse.

Структура уроку

  1. Організаційний момент.
  2. Актуалізація опорних знань.
  3. Вивчення нового матеріалу.
  4. Інструктаж з ТБ.
  5. Закріплення вивченого матеріалу.
  6. Підбиття підсумків уроку.
  7. Домашнє завдання.

Хід уроку
1. Організаційний момент
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання.

2. Актуалізація опорних знань

  1. Назвіть типи даних.
  2. Назвіть об'єкти електронних таблиць.
  3. Назвіть можливості пошуку інформації в електронній таблиці.
  4. Що таке фільтрування?
  5. З чого складаються електронні таблиці?
  6. Що таке об'єктно-орієнтоване програмування?
  7. Що таке клас, об’єкт і метод?

Об'єктно-орієнтоване програмуванняце метод програмування, заснований на поданні програми у вигляді сукупності об'єктів, якы взаємодіють між собою і кожний з яких є представником певного класу, а класи є членами певної ієрархії наслідування (властивостей і методів).

Програмісти спочатку описують клас, а на його основі створюють конкретні об'єкти (екземпляри класів). На основі наявних класів можна створювати нові, які розширюють базовий клас і таким чином створювати ієрархію класів.

Клас визначає абстрактні характеристики деякої сутності, включаючи властивості самої сутності та дії, які вона здатна виконувати (її поведінку, методи або можливості). Наприклад, клас Собака може характеризуватись рисами, притаманними всім собакам, зокрема: порода, колір хутра, здатність гавкати.

Класи вносять модульність та структурованість в об'єктно-орієнтовану програму. Як правило, клас має бути зрозумілим для не-програмістів, що знаються на предметній області.

Oб'єктокремий представник класу. Його створюють після запуску програми й ініціалізації полів класу. Клас Собака відповідає всім собакам. Об'єкт Сірко є одним представником класу собак, окремим варіантом значень характеристик. Собака має хутро довільного кольору, Сірко має коричнево-біле хутро. Сукупність значень властивостей окремого об'єкта називають станом. До класу Собака може належати інший об'єкт Дружок, який відрізнятиметься від Сірка своїм станом (наприклад кольором хутра).

3. Вивчення нового матеріалу

База данихце сукупність структорованих взаємоповязаних даних, що стосуються певної предметної області.

Класифікація баз даних:

Основні функції системи керування базами даних:

Модель данихце система правил, згідно з якими створюють структуру даних, здійснюють доступ до даних та змінюють їх.

Основні типи баз даних:

Сьогодні ми побудуємо реляційну базу даних з однією таблицею (реляцією) та програму, що дозволяє керувати цією базою. Ця програма має дозволяти отримати дані з бази, додавати нові дані до неї та вилучати їх. Для цього скористаємолся однією з найпоширеніших систем керування базами даних MySQL. В Інтернеті опубліковано багато описів встановлення й налаштування MySQL (у тому числі при ОС Windows 7).

Для робти з базою даних ми будемо використовувати MySQL Workbench.

MySQL Workbenchінструмент для візуального проектування баз даних, що інтегрує проектування, моделювання, створення та експлуатацію БД в єдине безшовне оточення для системи баз даних MySQL.

Можливості цієї програми програми:

Для початку роботи в MySQL Workbench необхідно створити з'єднання (MySQL Connection). Поетапне створення з'єднання описано тут. Необхідно запам'ятати значення параметрів username i password. У MySQL Workbench створимо базу даних з назвою project. Для цього натискаємо кнопку Create a new schema in the connected server . Для подальшої роботи нам необхідні два параметри (після тире подано використане значення):

Розіб'ємо створення програми на 4 кроки. Відповідно до кожного кроку створюється окремий файл з класом. Всього буде створено 4 класи:

описані у 4 файлах.

  1. Клас MyConnection — для під'єднання до бази даних project, наприклад, за допомогою такого коду1. У цьому коді:

    • клас MyConnection має три статичних поля та статичний метод. Поля є параметрами для входу. Поле URL є рядком підключення, тому тут додано назву протоколу з’єднання jdbc:mysql, localhost — назва серверу (хост), 3306 — номер порту, project — назва бази даних. Важливим є таке:

      useUnicode=yes&characterEncoding=UTF-8

      Це забезпечує відображення у базі даних літер багатьох абеток. У тому числі кирилиці.

      Аргумент autoReconnect = true, заданий для url-адреси драйвера JDBC, повинен автоматично розірвати з'єднання, якщо mysqld його закриє. Як усталено, mysqld закриє з'єднання через 8 годин.

      При компіляції коду MySQL радить нам явно відключити SSL (англійською Secure Sockets Layer — рівень захищених сокетів) — криптографічний протокол, який забезпечує встановлення безпечного з'єднання між клієнтом і сервером.

    • Щоб підключатися до сервера БД необхідно спочатку завантажити відповідний jdbc драйвер.

      Примітка. Java DataBase Connectivity (англійською — з'єднання з базами даних з допомогою Java) — прикладний програмний інтерфейс Java, який визначає методи, з допомогою яких програмне забезпечення мовою Java здійснює доступ до бази даних. JDBC — це платформо-незалежний промисловий стандарт взаємодії Java-застосунків з різноманітними СУБД, реалізований у вигляді пакета java.sql, що входить до складу Java SE (Standard Edition).

      Драйвери можна завантажувати динамічно (під час роботи програми). Після завантаження драйвер сам реєструє себе й викликається автоматично, коли програма вимагає URL, що містить протокол, за який «відповідає» драйвер.

      Потім отрібно підключити цей драйвер до проекту. Насамперед імпортувати пакет java.sql. *;, який містить класи для роботи з БД. Далі необхідно вказати диспетчеру драйверів JDBC, який саме драйвер слід завантажити. Наступний крок це передача відомостей про підключення до бази даних у вигляді URL-адреси підключення. Метод getConnection() повертає нам те підключення, за допомогою якого ми зможемо маніпулювати даними.

    • У даному блоці використовується конструкція try-catch-finally для опрацювання винятків.

      Винятокце проблема (помилка), що виникає під час виконання програми. Винятки можуть виникати у багатьох випадках, наприклад: користувач увів некоректні дані, файл, до якого звертається програма, не знайдено, мережеве з'єднання з сервером було втрачено під час передавання даних тощо.

      Опрацювання виняткових ситуацій (exception handling) — механізм мов програмування, призначений для опису реакції програми на помилки часу виконання й інші можливі проблеми (виключення), які можуть виникнути при виконанні програми і призводять до неможливості подальшої відпрацювання програмою її основного алгоритму.

      У Java є декілька ключових слів для роботи з винятками (після тире вказано, для позначення чого використовують відповідне слово):

      • try — початок блоку коду, який потенційно може привести до помилки;

      • catch — початок блоку коду, призначеного для перехоплення й опрацювання винятків;

      • finally — початок додаткового блоку коду, розташованого після останнього блоку catch. Керування зазвичай буде передано у блок finally у будь-якому випадку.

  2. Клас Student — для відтворення сутності Учень у коді2 — щоб правильно відображати та змінювати дані про учня, видаляти та додавати дані про учнів.

  3. Клас DataAccess. — для забезпечення введення, виведення і редагування даних — найістотніша частина програми. Саме тут портібно реалізувати такі методи: додавання учня, отримання масиву всіх учнів, видалення учня (хоча б за його ідентифікатором id), отримання даних за певним критерієм тощо. Це можна забезпечити, наприклад, за допомогою функціоналу класу DataAccess — див. код3 — з такими методами:

    • prepare — створює таблицю за допомогою запиту SQL;
    • clear — видаляє таблицю за допомогою SQL запиту;
    • selectAll — повертає масив з усіма учнями із БД;
    • insertStudent — додає учня до таблиці;
    • deleteStudent — видаляє з таблиці учня за його ідентифікатором;
    • updateBirthday — змінює дані про день народження уже наявного учня;
    • getByMark — повертає список усіх учнів із зазначеною оцінкою;
    • getByID — знаходить учня за його ідентифікатором.
  4. Клас Main — для забезпечення інтерфейсу для користувача, що забезпечує виконання таких 7 функцій:

    • list — виведення списку учнів;
    • add — додавання нового учня;
    • remove — видалення учня;
    • edit — редагування дати народження обраного учня;
    • search — пошук учнів за значенням оцінки;
    • sort — виведення списку учнів, упорядкованому за прізвищем.

    У коді4 головний метод main здійснює підготовку для роботи з базою даних. Тут створено два об'єкти-учні, які додано у БД. Далі описано консольний користувацький інтерфейс, який виглядає таким чином (білі літери на чорному тлі монітора):

    Оберіть дію:
     * list - список учнів;
     * add - додати учня;
     * remove - вилучити учня;
     * edit - корегувати дату народження;
     * search - пошук за оцінкою;
     * sort - впорядкувати за прізвищем;
     * exit - вихід.

    Після введення одного із запропонованих слів відбудеться відповідна подія. Інакше (якщо введене інше слово) програма повідомить про помилку:

    Оберіть наявну дію з переліку!

    За таку функціональність відповідає блок switch-case. При введенні одного із запропонованних слів буде викликано відповідний метод. В кожному із методів використано функціональність класу DataAccess. Наприклад у методі taskList викликано метод selectAll для отримання масиву учнів, у методі taskAdd використано метод insertStudent класу DataAccess для додавання нового учня у базу тощо.

    Розглянемо кожну запропоновану дію у роботі:

















Примітка. Наразі Java передбачає існування трьох бібліотек візуальних складових для створення графічного інтерфейсу користувача:

Кожна з цих бібліотек надає набір класів для роботи з кнопками, списками, вікнами, меню тощо. Але ці класи спроектовано по-різному: вони мають різний набір методів з різними параметрами, тому перейти у програмі від використання однієї бібліотеки до використання іншої (наприклад , з метою збільшення швидкодії) не просто. Це нагадує перехід з однієї мови програмування до іншої: всі мови вміють робити одне і те саме, але у кожного з них свій синтаксис, своя структура програми і свої численні особливості.

Для створенням застосунку з графічним інтерфейсом радимо ознайомитися самостійно з матеріалами, які є в Інтернеті. Наприклад, з відеоуроком.

3. Інструктаж з ТБ
4. Вироблення практичних навичок


Завдання. Створити програму для роботи з базою даних згідно з описаним вище підходом з мінімальним використанням підказки і такою структурою файлів проекту (у середовищі Intellij IDEA):

Архів створеного проекту записати з назвою Ваше прізвище записати у вказану вчителем теку.

5. Закріплення вивченого матерілу
Які конструкції мови java було використано при створенні проекту?

6. Підбиття підсумків уроку
Виставлення оцінок.

7. Домашнє завдання
Опрацювати матеріал уроку. У разі потреби доробити проект. Внести до програми зміни з метою збільшення кількості полів, за якими проводити упорядкування даних і фільтрування даних.


Текст упорядкувала Салій Віра Борисівна, вчитель Київського Вищого Професійного Училища швейного та перукарського мистецтва міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 16.01 січня 2017 року по 26 січня 2017 року.