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

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

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

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

Учні повинні мати уявлення про можливості комплексу Java + MySQL.

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

Обладнання: комп'ютери зі встановленими ОС, середовищем Netbeans для програмування мовою Java, LAMP або XAMPP.

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

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

Примітка. Цей урок проводять лише після успішного опанування матеріалом уроків щодо вивчення SQL і виконання усіх його практичних завдань.

Хід уроку

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

2. Актуалізація опорних знань
Дати відповідь на питання і порівняти з очікуваним.

  1. Що таке SQL?
  2. Яка ознака кінця вказівки SQL?
  3. Які вказівки SQL створюють базу даних, таблицю, запит?
  4. Що таке агрегатна функція SQL? Назвати приклади
  5. Що таке внутрішнє і зовнішнє об'єднання?
  6. Що таке MySQL?
  7. Що таке XAMPP?
  8. Що таке LAMP?
  9. Що таке MariaDB?

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

Під'єднання бази даних і здійснення запиту мовою SQL мовою Java здійснюють за допомогою:

Для ОС Linux Mint 19 після встановлення файл JAR можна виявити за адресою /usr/share/java/mysql-connector-java-8.0.28.jar (тут замість номера версії 8.0.28 може бути інший номер). Файл JAR можна залишити на місці встановлення або перенести у довільне інше місце. Наприклад, у теку проєкту.

У будь-якому випадку встановлений файл JAR необхідно приєднати до проєкту, що використовує SQL. У середовищі Netbeans це можна зробити таким чином:



Розглянемо випадок, коли попередньо виконано такі вказівки MySQL.

SET collation_connection = 'utf8_unicode_ci';
CREATE DATABASE school;
ALTER DATABASE school  CHARACTER SET utf8 COLLATE utf8_unicode_ci;
USE school;
SOURCE structure.sql;
SOURCE data.sql;

Примітка. Дія всіх вказівок з CHARACTER SET utf8 COLLATE utf8_unicode_ci спрямована на уникнення винятків, породжених конфліктами різних схем упорядкування й порівняння.

У цьому випадку програма мовою Java може мати такий вигляд

package work;
import java.sql.*;    // під'єднання бібліотеки підпрограм роботи з SQL
import java.util.*;
class Work
{ public static void main(String args[])
  { try { Class.forName("com.mysql.cj.jdbc.Driver");   // завантаження драйвера 
          Connection con = DriverManager.getConnection // створення сполучення з базою даних
          ("jdbc:mysql://localhost:3306/school",       // school - назва бази даних
           "root",     // обліковий запис користувача базами даних
           "!@#123Qwe" // пароль
          );
          Statement stmt=con.createStatement();  
          ResultSet rs=stmt.executeQuery("SELECT * FROM pupils WHERE form = '11Б';");
          while (rs.next()) System.out.println
            (rs.getString(1)+" "+rs.getString(2)+" "
            +rs.getString(3)+" "+rs.getString(4));  
          con.close();  
        }
    catch(Exception e)  {System.out.println("Отримано виняток "+e);}  
  }  
}

з таким виведенням у консоль.

ЛИСЕНКО ДМИТРО 11Б 113
РУДЕНКО ОЛЕГ 11Б 114
САВЧЕНКО ВАЛЕРІЙ 11Б 115
ПЕТРЕНКО ЛЕОНІД 11Б 116
ШУЛЬГА ГАЛИНА 11Б 117
РАДЧЕНКО ТЕТЯНА 11Б 118
КОРОЛЬ НАДІЯ 11Б 119
ОСТАПЕНКО ЛЮДМИЛА 11Б 120

Інколи під'єднання неможливе внаслідок використання кодування UTF-8 чи роботи у різних часових поясах. У цьому випадку радять перший аргумент методу getConnection задавати таким рядком тексту.

"jdbc:mysql://localhost:3306/school?autoReconnect=true&useSSL=false&useUnicode=yes&characterEncoding=UTF-8"

У цьому рядку: Опис опрацювання запитів

У поданій вище програмі використано конструкція try-catch-finally для опрацювання винятків.

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

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

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

  • 4. Інструктаж з ТБ
    5. Закріплення вивченого матеріалу


    На початку виконання завдань середовище MySQL/MariaDB повинне бути активним і не містити бази даних school. При виконанні завдань використати демонстраційні розв'язання a, b, c завдань уроку 1 щодо SQL.

    Завдання 1. Створити програму мовою Java, яка засобами SQL:

    Порівняти з очікуваними виведенням і кодом.

    Завдання 2. Використовуючи попередньо апробований код SQL, створити програму мовою Java для виведення у консоль у вигляді асоціативних масивів таких даних:

    Виконати запити й порівняти з очікуваними виведенням і кодом мовою Java.

    Завдання 3. Використовуючи попередньо апробований код SQL, створити програму мовою Java для такого:

    Виконати запити й порівняти з очікуваними виведенням і кодом.

    Завдання 4. Використовуючи попередньо апробований код SQL, створити програму мовою Java для такого:

    Виконати запити й порівняти з очікуваними виведенням і кодом.

    6. Підбиття підсумків уроку

    Дати відповідь на питання і порівняти з очікуваним.

    1. Як під'єднати базу даних мовою Java?
    2. Як здійснити запит мовою SQL з програми мовою Java?
    3. Яка структура результату запиту мовою SQL з програми мовою Java?
    4. Як вивести результат запиту мовою SQL з програми мовою Java?

    Виставлення оцінок.

    7. Домашнє завдання
    У разі потреби доробити завдання. Вивчити систаксис під'єднання бази даних і здійснення запиту мовою SQL з програми мовою Java. Написати програму мовою Java, яка зчитуватиме з клавіатури й виконуватиме запити SQL до тих пір, поки не буде введено порожній рядок.


    Текст упорядкував Олександр Рудик.