JDBC (Java DataBase Connectivity - з'єднання з базами даних в Java) - платформно незалежний промисловий стандарт взаємодії Java-додатків з різними СУБД, реалізований у вигляді пакету java.sql, що входить до складу Java SE.
JDBC заснований на концепції так званих драйверів, що дозволяють отримувати з'єднання з базою даних за спеціально описаною URL-адресою. Драйвери можуть завантажуватися динамічно час роботи програми). Завантажившись, драйвер сам реєструє себе та викликається автоматично, коли програма вимагає URL, що містить протокол, за який драйвер відповідає.
Переваги та недоліки JDBC
Переваги:
Єдиний інтерфейс для роботи СУБД
Незалежність від операційної системи (Windows, Linux, MacOs).
Для роботи достатньо скачати JDBC драйвер (jar-файл), нема необхідності встановлювати додатковий софт.
Недоліки:
Перехід від однієї СУБД до іншої (з існуючим програмним кодом)
завжди легко вдається виконати
Відмінність у синтаксисі SQL-запитів
2-х ланкова архітектура
Часто використовується в додатках (не Web). База може
перебуває як у тому комп'ютері, і іншому.
Мінуси:
Вся логіка з управління базою даних (транзакції,розподіл навантаження та ін.) лягати на програмний код.
Немає централізованого керування доступом у базі даних
Часто зміни по роботі необхідно проводити в програмному коді
Невисока продуктивність
3-x ланкова архітектура
Часто використовується для web-додатків, коли до однієї бази даних одночасно звертається безліч користувачів.
Плюси:
• Логіка управління доступом до бази даних лягає на сервер додатків.
Програмний код лише здійснює логіку роботи з даними (запити, обробка).
• База даних знаходиться на окремому комп'ютері з гарною продуктивністю
• Можливість централізованого збільшення продуктивності (кешування, пули)
з'єднань, оптимізація та ін.)
Підключення JDBC драйвера
try {
Class.forName(“com.mysql.jdbc.Driver“);
System.out.println(“Driver loading success!“);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Отримання Connection
Connection connection = DriverManager .getConnection(url, user, password);
Statement statement = connection.createStatement();
statement.execute("create table user(" + "id integer primary key auto_increment, " + "name varchar(100));");
statement.execute("insert into user(name) values('borya'),('petya')");
ResultSet rs = statement.executeQuery("select * from user");
while (rs.next()) {
System.out.println(rs.getInt("id") + " : " + rs.getString("name"));
}
if (rs != null && statement != null && connection != null)
try {
rs.close();
statement.close();
connection.close();
} catch (SQLException ignore) { }
У JDBC існує два види Statement
• Static Statement (Пишемо запит у типі String)
• Prepared Statement (де за допомогою методів підставляємо значення замість знаків питання, саме його переважно використовувати).
Q&A
Дякую всім за заняття!🙌🏻
❗️🎓Тема уроку: 1. Вступ в JDBC
Нагадую, що дедлайн здачі домашніх робіт – до наступного уроку.
Якщо виникають складнощі, пишіть, допоможу із задоволенням 😌
Запис лекції тренер опублікує трохи пізніше 🖥
Не забудьте повторити матеріал та підготуватися до наступного уроку📚
Успіху і до зустрічі!🤩
1. Напишіть чек-лист тестування короткострокової події.
Інтернет-магазин робить промоакцію – протягом одного робочого дня з 8 ранку і до 22 вечора на
сайті мають бути знижки на різні категорії товарів у різний час:
•До 12:00 на взуття, з 12:00 і до 18:00 на курточки, а з 18:00 до 22:00 – на штани.
•Знижка на взуття 15%, на штани - 10%, а на куртки - 30%.
1. Створіть таблицю рішень для тестування системи продажів у кінотеатрі, згідно з нею на фільми діє знижка у таких випадках:
•Ранкова сесія в будь-який день – 15%
•Усі сеанси у глядацький день – 30%
•Пільгові категорії відвідувачів (студенти, пенсіонери, інваліди) за умови надання довідок – 30%
•Знижки підсумовуються, за виключенням знижки у глядацький день